Changelog
This project adheres to Semantic Versioning and Keep a Changelog format.
[0.31.0] - 2020-10-07
Added
to_dict
method inSample
class that can include or excludeProject
reference
[0.30.3] - 2020-09-22
Changed
- If there's just one
subsample_table
specified,Project.subsample_table
property will return an object ofpandas.DataFrame
class rather than alist
of ones
Fixed
TypeError
whensubsample_table
is 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_name
attribute in the sample table
[0.22.3] - 2019-12-13
Changed
- Remove
is_command_callable
fromutils
module; 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
ngstk
requirement.
[0.22.1] - 2019-06-19
Changed
- Prohibit storing reference to full
Project
object on aSample
.
[0.22.0] -- (2019-06-06)
Changed
- Deprecate
Project
constants
in favor ofconstant_attributes.
- Improved
Project
text representation for interactive/terminal display (__repr__
): Issue 296
Fixed
- Properly use
constant_attributes
if present from subproject. Issue 292 - Fixed a bug with subproject activation paths
- Revert deprecation of
sample_name
toname
; sosample_name
is again approved.
[0.21.0] -- (2019-05-02)
Added
- Support for Snakemake projects (particularly
SnakeProject
) - Hook for
get_arg_string
onProject
to omit some pipeline options/arguments from the returned argument string sample_table
andsubsample_table
functions, providing a functional syntax for requesting the respective attribute values from aProject
- Hook on
merge_sample
for 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
,sheet
is deprecated in favor ofsample_table
. - On
Project
,sample_subannotation
is deprecated in favor ofsubsample_table
. - On
Sample
, reference tosample_name
is deprecated in favor of simplyname
.
[0.20.0] -- (2019-04-17)
Added
subsample_table
on aProject
gives the table of sample subannotation / "units" if applicable.
Changed
- Add
attribute
parameter tofetch_samples
function to enable more general applicability. Additionally, the attribute value matching is more strict now -- requires perfect match. - Remove Python 3.4 support.
- Use
attmap
for implementation of attribute-style access into a key-value collection. - Deprecate
sample_annotation
andsample_subannotation
in favor ofsample_table
andsubsample_table
, respectively.
[0.19.0] -- (2019-01-16)
New
- Added
activate_subproject
method toProject
.
Changed
Project
construction no longer requires sample annotations sheet.- Specification of assembly/ies in project config outside of
implied_attributes
is deprecated. implied_columns
andderived_columns
are deprecated in favor ofimplied_attributes
andderived_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
numexpr
versions.
New
- Project names are now inferred with the
infer_name
function, which uses a priority lookup to infer the project name: First, thename
attribute in theyaml
file; otherwise, the containing folder unless it ismetadata
, in which case, it's the parent of that folder. - Add
get_sample
andget_samples
functions toProject
objects. - Add
get_subsamples
andget_subsample
functions to bothProject
andSample
objects. - Subsamples are now objects that can be retrieved individually by name, with the
subsample_name
as 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,
peppy
package is now standalone looper
can now rely onpeppy
Changed
merge_table
renamed 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_args
section.
[0.7.0] -- (2017-11-15)
New
- Add
--lump
and--lumpn
options - 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.yaml
files, increasing flexibility, so this relaxes the specified folder structure that was previously used forpipelines_dir
(withconfig
subfolder). - 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_dir
topipeline_interfaces
(but maintained backwards compatibility for now). - Changed name of
run
column totoggle
, sincerun
can 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
setuptools
for installation, andpandas 0.20.2
. Ifnumexpr
is installed, version2.6.2
is required. - Allows tilde in
pipeline_interfaces
[0.5.0] -- (2017-03-01)
New
- Add new looper version tracking, with
--version
and-V
options 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_files
andrequired_input_files
attributes - 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.R
script - New subcommand (
looper check
) replacing theflagCheck.sh
script - 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
pipelines
repository 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