Changelog
This project adheres to Semantic Versioning and Keep a Changelog format.
[0.40.7] -- 2024-09-30
Fixed
- Fixed incorrect sample table index in subtables
[0.40.6] -- 2024-09-10
Changed
[0.40.5] -- 2024-07-25
Fixed
- Fixed bug in initialization of peppy object from csv
[0.40.4] -- 2024-07-17
Changed
- minor change, PR #490
[0.40.3] -- 2024-07-17
Fixed
[0.40.2] -- 2024-05-28
Added
- added
sample_nameproperty to samples object.
[0.40.1] -- 2024-01-11
Fixed
- Initializing Project with
NaNvalue instead ofNoneinfrom_pandasmethod
[0.40.0] -- 2023-12-18
This version introduced backwards-incompatible changes.
Changed
- Replaced
attmapwithMutableMapping(which removes some attributes) - Replaced OrderedDict with dict
- Deprecated support for Python versions <= 3.7
Due to the changes mentioned above, a few functionalities may be disabled. For example, the name and description project properties can no longer be accessed with getitem; use the getattr syntax instead
Added
- Constructor methods:
Project.from_dict,Project.from_pandas,Project.from_sample_yaml,Project.from_pep_config
[0.35.7] -- 2023-07-19
Fixed
- incorrect setting of sample and subsample indexes using from_dict function (#452)
- clarified debug messages
[0.35.6] -- 2023-06-27
Added
orientargument toto_dictmethod
Fixed
- The name of the raw subsample object to match the actual name (list). Commit: #442
Changed
- Reduced the number of items returned in the to_dict(extended=True) method to 3, with the name and description now stored in the config key.
[0.35.5] -- 2023-03-27
Fixed
- A bug with custom sample ids
- Improved performance for large tables dramatically
[0.35.4] -- 2023-01-17
Fixed
- Fixed disabling rich progress on small datasets bug
- Disabled progressbar if object variable
progressbaris set False
[0.35.3] -- 2022-11-16
Fixed
- Returning
NaNvalue in initialization project from pandas df
[0.35.2] -- 2022-09-13
Fixed
- Returning
NaNvalue withinto_dictmethod was fixed and method now returnsNoneinstead
[0.35.1] -- 2022-09-07
Changed
- Organization of test files. Separated unittests from smoketests.
Fixed
- The root cause of
np.nanvalues showing up in Pandas dataframes. Replaced the values with None right after reading the database, which made it possible to remove all customnp.nantoNoneconverters used later in the code. - Typing in some methods.
- Code redundancy in fixtures in conftest.
Added
- New test cases with test data
[0.35.0] -- 2022-08-25
Changed
- Optimized converting Projects to and from dict. Now,
to_dict(extended=True)returns only essential properties to save space and time. - Small refactors.
Fixed
- Initialization of
peppy.Projectfrompandas.DataFrame. Nowfrom_pandas()can receive sample table, subsample table and config file - Multiple bugs introduced during initialization of the project with custom index column names
Added
- New test cases and test data
[0.34.0] -- 2022-08-17
Changed
- Way of initialization project from dictionary. Now it's possible as follows:
Project().from_dict()
Fixed
- Fix error that was raised when duplicated sample in
sample_tablehad different read types (single-end mixed with paired-end).
Added
- Feature of initializing
peppy.Projectfrompandas.DataFrame
[0.33.0] -- 2022-07-25
Changed
pep_versionis no longer a required parameter to create apeppy.Projectinstance from a configuration file.
Fixed
- Performance issues during sample parsing. Two list comprehensions were combined to speed up this functionality.
KeyErroris thrown when attempting to access thepep_versionof apeppy.Projectinstance instantiated from a sample table (csv)
Added
- Implementation of
__eq__for thepeppy.Projectclass such that two instances of the class can be compared using python's equality operators (==,!=). - New
from_dictfunction that lets a user instantiate a newpeppy.Projectobject using an in-memory representation of a PEP (adict). This supports database storage of PEPs. - New
extendedflag for theto_dictmethod onpeppy.Projectobjects. This creates a richer dictionary representation of PEPs. - Better sample parsing
[0.32.0] -- 2022-05-03
Changed
- Unify exceptions related to remote YAML file reading in
read_yamlfunction. Now always aRemoteYAMLErroris thrown. Projectdict representation
Added
- Support for PEP
2.1.0, whichi includes support for no YAML configuration file component (CSV only), automatic sample merging if there are any duplicates in sample table index column, and new project attributes:sample_table_indexandsubsample_table_index.
Fixed
- Project string representation; Issue 368
[0.31.2] -- 2021-11-04
Fixed
- Bug with setuptools 58
[0.31.1] -- 2021-04-15
Added
- Support for remote URL config files
Fixed
- Error when accessing
Project.subsample_tableproperty when no subsample tables were defined
[0.31.0] - 2020-10-07
Added
to_dictmethod inSampleclass that can include or excludeProjectreference
[0.30.3] - 2020-09-22
Changed
- If there's just one
subsample_tablespecified,Project.subsample_tableproperty will return an object ofpandas.DataFrameclass rather than alistof ones
Fixed
TypeErrorwhensubsample_tableis set tonull
[0.30.2] - 2020-08-06
Added
- Support for multiple subsample tables
- License file to the package source distribution
[0.30.1] - 2020-05-26
Changed
- Package authors list
[0.30.0] - 2020-05-26
This version introduced backwards-incompatible changes.
Added
- attribute duplication functionality
- config importing functionality
- attribute removal functionality
- possibility to define multi-attribute rules in attribute implication
Changed
- Project configuration file to follow PEP2.0.0 specification. Browse the specification for changes related to config format
- Do not require
sample_nameattribute in the sample table
[0.22.3] - 2019-12-13
Changed
- Remove
is_command_callablefromutilsmodule; instead, refer toubiquerg. - It's now exceptional (rather than just a warning) for a sample table file to be missing a valid name column.
Fixed
- Empty columns in subsample tables are treated just as empty columns in sample tables (respective attributes are not included rather than populated with
nan)
[0.22.2] - 2019-06-20
Changed
- Remove
ngstkrequirement.
[0.22.1] - 2019-06-19
Changed
- Prohibit storing reference to full
Projectobject on aSample.
[0.22.0] -- (2019-06-06)
Changed
- Deprecate
Projectconstantsin favor ofconstant_attributes. - Improved
Projecttext representation for interactive/terminal display (__repr__): Issue 296
Fixed
- Properly use
constant_attributesif present from subproject. Issue 292 - Fixed a bug with subproject activation paths
- Revert deprecation of
sample_nametoname; sosample_nameis again approved.
[0.21.0] -- (2019-05-02)
Added
- Support for Snakemake projects (particularly
SnakeProject) - Hook for
get_arg_stringonProjectto omit some pipeline options/arguments from the returned argument string sample_tableandsubsample_tablefunctions, providing a functional syntax for requesting the respective attribute values from aProject- Hook on
merge_samplefor specifying name of subannotation column that stores name for each sample
Changed
- Improved messaging: "Unmatched regex-like", "Missing and/or empty attribute(s)"
- On
Project,sheetis deprecated in favor ofsample_table. - On
Project,sample_subannotationis deprecated in favor ofsubsample_table. - On
Sample, reference tosample_nameis deprecated in favor of simplyname.
[0.20.0] -- (2019-04-17)
Added
subsample_tableon aProjectgives the table of sample subannotation / "units" if applicable.
Changed
- Add
attributeparameter tofetch_samplesfunction to enable more general applicability. Additionally, the attribute value matching is more strict now -- requires perfect match. - Remove Python 3.4 support.
- Use
attmapfor implementation of attribute-style access into a key-value collection. - Deprecate
sample_annotationandsample_subannotationin favor ofsample_tableandsubsample_table, respectively.
[0.19.0] -- (2019-01-16)
New
- Added
activate_subprojectmethod toProject.
Changed
Projectconstruction no longer requires sample annotations sheet.- Specification of assembly/ies in project config outside of
implied_attributesis deprecated. implied_columnsandderived_columnsare deprecated in favor ofimplied_attributesandderived_attributes.
[0.18.2] -- (2018-07-23)
Fixed
- Made requirements more lenient to allow for newer versions of required packages.
[0.18.1] -- (2018-06-29)
Fixed
- Fixed a bug that would cause sample attributes to lose order.
- Fixed a bug that caused an install error with newer
numexprversions.
New
- Project names are now inferred with the
infer_namefunction, which uses a priority lookup to infer the project name: First, thenameattribute in theyamlfile; otherwise, the containing folder unless it ismetadata, in which case, it's the parent of that folder. - Add
get_sampleandget_samplesfunctions toProjectobjects. - Add
get_subsamplesandget_subsamplefunctions to bothProjectandSampleobjects. - Subsamples are now objects that can be retrieved individually by name, with the
subsample_nameas the index column header.
[0.17.2] -- (2018-04-03)
Fixed
- Ensure data source path relativity is with respect to project config file's folder.
[0.17.1] -- (2017-12-21)
Changed
- Version bump for first pypi release
- Fixed bug with packaging for pypi release
[0.9.0] -- (2017-12-21)
New
- Separation completed,
peppypackage is now standalone loopercan now rely onpeppy
Changed
merge_tablerenamed tosample_subannotation- setup changed for compatibility with PyPI
[0.8.1] -- (2017-11-16)
New
- Separated from looper into its own python package (originally called
pep)
[0.7.2] -- (2017-11-16)
Fixed
- Correctly count successful command submissions when not using
--dry-run.
[0.7.1] -- (2017-11-15)
Fixed
- No longer falsely display that there's a submission failure.
- Allow non-string values to be unquoted in the
pipeline_argssection.
[0.7.0] -- (2017-11-15)
New
- Add
--lumpand--lumpnoptions - Catch submission errors from cluster resource managers
- Implied columns can now be derived
- Now protocols can be specified on the command-line
--include-protocols - Add rudimentary figure summaries
- Allow wildcard protocol_mapping for catch-all pipeline assignment
- New sample_subtypes section in pipeline_interface
Changed
- Sample child classes are now defined explicitly in the pipeline interface. Previously, they were guessed based on presence of a class extending Sample in a pipeline script.
- Changed 'library' key sample attribute to 'protocol'
- Improve user messages
- Simplifies command-line help display
[0.6.0] -- (2017-07-21)
New
- Add support for implied_column section of the project config file
- Add support for Python 3
- Merges pipeline interface and protocol mappings. This means we now allow direct pointers to
pipeline_interface.yamlfiles, increasing flexibility, so this relaxes the specified folder structure that was previously used forpipelines_dir(withconfigsubfolder). - Allow URLs as paths to sample sheets.
- Allow tsv format for sample sheets.
- Checks that the path to a pipeline actually exists before writing the submission script.
Changed
- Changed LOOPERENV environment variable to PEPENV, generalizing it to generic models
- Changed name of
pipelines_dirtopipeline_interfaces(but maintained backwards compatibility for now). - Changed name of
runcolumn totoggle, sinceruncan also refer to a sequencing run. - Relaxes many constraints (like resources sections, pipelines_dir columns), making project configuration files useful outside looper. This moves us closer to dividing models from looper, and improves flexibility.
- Various small bug fixes and dev improvements.
- Require
setuptoolsfor installation, andpandas 0.20.2. Ifnumexpris installed, version2.6.2is required. - Allows tilde in
pipeline_interfaces
[0.5.0] -- (2017-03-01)
New
- Add new looper version tracking, with
--versionand-Voptions and printing version at runtime - Add support for asterisks in file paths
- Add support for multiple pipeline directories in priority order
- Revamp of messages make more intuitive output
- Colorize output
- Complete rehaul of logging and test infrastructure, using logging and pytest packages
Changed
- Removes pipelines_dir requirement for models, making it useful outside looper
- Small bug fixes related to
all_input_filesandrequired_input_filesattributes - More robust installation and more explicit requirement of Python 2.7
[0.4.0] -- (2017-01-12)
New
- New command-line interface (CLI) based on sub-commands
- New subcommand (
looper summarize) replacing thesummarizePipelineStats.Rscript - New subcommand (
looper check) replacing theflagCheck.shscript - New command (
looper destroy) to remove all output of a project - New command (
looper clean) to remove intermediate files of a project flagged for deletion - Support for portable and pipeline-independent allocation of computing resources with Looperenv.
Changed
- Removed requirement to have
pipelinesrepository installed in order to extend base Sample objects - Maintenance of sample attributes as provided by user by means of reading them in as strings (to be improved further
- Improved serialization of Sample objects