Skip to content

Releases: EI-CoreBioinformatics/mikado

1.2

03 May 16:30
Compare
Choose a tag to compare
1.2

Skip to 1.2.1, see Changelog there

PyPI 1.1.1

21 Mar 16:56
Compare
Choose a tag to compare

Added LICENSE.txt to the setup.py.

PyPI 1.0.2

21 Mar 16:53
Compare
Choose a tag to compare

Updated the release to contain the LICENSE.txt file.

Prodigal

05 Dec 15:39
Compare
Choose a tag to compare

Highlights for this release are the swithing by default to Prodigal in lieu of TransDecoder and to DIAMOND instead of NCBI BLASTX. The rationale behind the change is that the two former default programs scale poorly with the size of datasets, as neither was designed to maintain a good execution speed with potentially million sequences. Prodigal and DIAMOND fare much better with big datasets, and do speed up significantly the execution of the whole Daijin pipeline.

Changes in this release:

  • Mikado is now compatible with NetworkX v. 2x.
  • Mikado now accepts ORFs calculated by Prodigal, in GFF3 format, instead of only those by TransDecoder in BED format.
  • Mikado compare indices now are SQLite3 databases, not compressed JSON files as in previous versions. This should allows for a faster loading and potentially, down the line, the chance to parallelise compare.
  • By default, Daijin now uses Prodigal and DIAMOND instead of TransDecoder and BLAST. This should lead to massive speed-ups during the pipeline, although at the cost of slightly reduced accuracy.
  • Improved the algorithm for finding retained introns, using a graph structure instead of potentially checking against every other transcript in the locus.
  • Mikado configure now has a new flag, "--daijin", which instructs the program to create a Daijin-compatible configuration file, rather than a Mikado-only one.
  • Fixed some bugs in Daijin regarding the handling of Long Reads.
  • Fixed a bug in Daijin regarding the calculation of Trinity parameters - previously, Daijin could potentially ask Trinity for parameters for N times, where N is the number of required assemblies, lengthening the startup time.
  • Solved a bug that created incompatibility with BioPython >= 1.69
  • Solved some bugs that prevented Daijin from functioning correctly on a local computer
  • Now Daijin by default recovers the information to load external software from an external configuration file. This allows for having a standard configuration file for external programs, without having to modify the main configuration all the time.
  • Now Daijin creates and/or load a standard configuration file for the cluster, "daijin_hpc.yaml".

BugFix

28 Apr 07:47
Compare
Choose a tag to compare

BugFix release.

  • Fixed a bug which caused Mikado to go out of memory with very dense loci, when calculating the AS events.
  • Fixed a bug which caused the log not to be saved correctly during the indexing for Mikado compare.
  • Fixed a bug which caused Mikado pick to crash at the end, on rare cases.
  • Data to be transmitted to picking process children is now stored in a temporary SQLITE3 database, to lessen memory usage and queue hangups.
  • Fixed a bug while that caused a crash while Mikado was trying to approximate complex loci.
  • Switched away from using clique-based algorithms, as they tend to be very memory intensive.

Version 1

07 Mar 17:17
Compare
Choose a tag to compare

#Version 1.0

Changes in this release:

  • MAJOR: solved a bug which caused a failure of clustering into loci in rare occasions. Through the graph clustering, now Mikado is guaranteed to group monoloci correctly.
  • MAJOR: When looking for fragments, now Mikado will consider transcripts without a strand as being on the opposite strand of neighbouring transcripts. This prevents many monoexonic, non-coding fragments from being retained in the final output.
  • MAJOR: now Mikado serialise also stores the frame information of transcripts. Hits on the opposite strand will be ignored. This requires to regenerate all Mikado databases.
  • MAJOR: Added the final configuration files used for the article.
  • Added three new metrics, "blast_target_coverage", "blast_query_coverage", "blast_identity"
  • Changed the default repertoire of valid AS events to J, j, G, h (removed C and g).
  • Bug fix: now Mikado will consider the cDNA/CDS overlap also for monoexonic transcripts, even when the "simple_overlap_for_monoexonic_loci" flag is set to true.
  • Solved some issues with the Daijin schemas, which prevented correct referencing.
  • Bug fix for finding retained introns - Mikado was not accounting for cases where an exon started within an intron and crossed multiple subsequent junctions.
  • BF: Loci will never purge transcripts
  • After creating the final loci, now Mikado will check for, and remove, any AS event transcript which would cross into the AS event.

IWGSC1

15 Feb 18:36
Compare
Choose a tag to compare

Changes in this release:

  • MAJOR: re-written the clustering algorithm for the MonosublocusHolder stage. Now a holder will accept another monosublocus if:
    • the cDNA and CDS overlap is over a user-specified threshold OR
      OR
    • there is some intronic overlap
      OR
    • one intron of either transcript is completely contained within an exon of the other.
      OR
    • at least one of the transcripts is monoexonic and there is some overlap of any kind. This behaviour (which was the default until this release) can be switched off through pick/clustering/simple_overlap_for_monoexonic (default true).
  • MAJOR: changed slightly the anatomy of the configuration files. Now "pick" has two new subsections, "clustering" and "fragments".
    • Clustering: dedicated to how to cluster the transcripts in the different steps. Currently it contains the keys:
      • "flank"
      • "min_cdna_overlap" and "min_cds_overlap" (for the second clustering during the monosublocusHolder phase)
      • "cds_only": to indicate whether we should only consider the CDS for clustering after the initial merging in the Superlocus.
      • "simple_overlap_for_monoexonic": to switch on/off the old default behaviour with monoexonic transcripts
      • "purge": whether to completely exclude failed loci, previously under "run_options"
    • Fragments: dedicated to how to identify and treat putative fragments. Currently it contains the keys:
      • "remove": whether to exclude fragments, previously under "run_options"
      • "valid_class_codes": which class codes constitute a fragment match. Only class codes in the "Intronic", "Overlap" (inclusive of _) and "Fragment" categories are allowed.
      • max_distance: for non-overlapping fragments (ie p and P), maximum distance from the gene.
  • Solved a long-standing bug which caused Mikado compare to consider as fusion also hits.
  • Mikado compare now also provides the location of the matches in TMAP and REFMAP files.
  • Introduced a new utility, "class_codes", to print out the information of the class codes. The definition of class codes is now contained in a subpackage of "scales".
  • The "metrics" utility now allows for interactive querying based on category or metric name.
  • The class code repertoire for putative fragments has been expanded, and made configurable through the "fragments" section.
  • When printing out putative fragments, now Mikado will indicate the class code of the fragment, the match against which it was deemed a fragment of, and the distance of said fragment (if they are not overlapping).
  • Deprecated the "discard_definition" flag in Mikado serialise. Now Mikado will infer on its own whether to use the definition or the ID for serialising BLAST results.
  • Now AbstractLocus implementations have a private method to check the correctness of the json_conf. As a corollary, Transcript and children have been moved to their own subpackage ("transcripts") in order to break the circular dependency Mikado.loci.Abstractlocus <- Mikado.configurator <- Mikado.loci.Transcript. Technical note: checking the consinstency of the configuration is an expensive operation, so it will be executed on demand rather than automatically.
  • The methods to calculate scores and metrics have been moved to the AbstractLocus class, so to minimize the incidence of bugs due to code duplication and diversion.
  • Made the checks for the scoring files more robust.
  • Re-written the "find_retained_introns" method of AbstractLocus, to solve some bugs found during the utilisation of last beta. As a corollary, expanded the intervaltree module to allow searches for "tagged" intervals.
  • Now the "monoloci_out" files contain the MonosublocusHolder step, not the Monosublocus step. This should help during fine-tuning.
  • Minimal requirements for alternative splicing events are now specified with a syntax analogous to that of minimal requirements, and that for not considering a locus as a putative fragment, under the tag "as_requirements".
  • Fixed a bug which caused transcript requirements to be ignored if pick/clustering/purge was set to False.
  • Mikado now supports also Python3.6.

External scores

20 Jan 18:31
Compare
Choose a tag to compare

Changes in this release:

  • Mikado prepare, stats and compare are capable of using GFFs with "match/match_part" or "cDNA_match" features as input. This allows eg. to obtain sensible statistics for the alignments of Trinity transfrags or long reads when using GMAP inside Daijin.
  • When the option "subloci_from_cds_only" is set to true (or the equivalent command line switch is invoked), AS events class codes will be calculated on the coding portion only of the transcript.
  • Mikado now allows to perform unittest on the installed module, through the function "Mikado.test". This is simply a wrapper to NoseTest, through a call to the numpy tester.
  • IMPORTANT: in strand-specific mode, now Mikado prepare will not flip transcripts which have been misassigned to the opposite strand. Those transcripts will be kept on the original strand, and tagged.
  • IMPORTANT: now Mikado will use all the verified introns found in a Superlocus to determine the fraction of verified introns per locus in each transcript. At the stage of Locus, ie creation of genes, this will revert to check only the verified introns in the locus. Also, solved a bug related to this metric.
  • IMPORTANT: at the stage of the creation of monosubloci-holders, now Mikado groups together also transcripts for which at least one intron is completely contained within the exon of another. This should solve spurious cases where we called multiple loci instead of one, while probably avoiding trans-splicing.
  • IMPORTANT: otionally now Mikado can perform the second clustering of transcripts based on simple overlap (either of the CDS or of all exonic features). The option can be invoked from the command line.
  • Two new metrics:
    • "suspicious_splicing" will allow to identify transcripts with mixed_splices, or which would have at least one canonical intron if moved to the opposite strand.
    • "only_non_canonical_splicing" will allow to identify transcripts whose splicing sites are all non-canonical.
  • It is now possible to give Mikado a tab-delimited file of pre-calculated metrics (which must be numeric), during serialise. The file should have the transcript ids in the first column and have a header as first line; this header must have "TID" as first field, and no repeated fields afterwards. External metrics can be specified in the scoring configuration using the syntax "external.{name of the score}". If an inexistent metric is asked for, Mikado will assign a default value of 0 to it.
  • It is now possible to use metrics with values between 0 and 1, inclusive directly as scoring, by specifying the parameter "use_raw: True". This is available only for metrics which have been tagged as being "usable raw", or with externally provided metrics. The option is valid only when looking for the maximum or minimum value for a metric, not when looking for a target. If an incorrect configuration is specified, Mikado will crash.
  • Minimal requirements for alternative splicing events are now specified with a syntax analogous to that of minimal requirements, and that for not considering a locus as a putative fragment, under the tag "as_requirements".
  • Mikado prepare in "lenient" mode will keep also transcripts with a mixture of strands for the splicing junctions.
  • Mikado prepare can be asked to keep all transcripts, even if they are redundant. The new behaviour (disabled by default) is switched on by the boolean parameter "prepare/keep_redundant".
  • Mikado pick can consider transcripts with CDS ending within a CDS intron as truncated due to a retained intron event. This potentially allows Mikado to detect retained introns even when only CDSs are provided. The behaviour is disabled by default, and can be switched on using the boolean configuration parameter "pick/run_options/consider_truncated_for_retained".
  • Some bugs have been detected and solved thanks to the collaboration with Hugo Darras.
  • Many tests, including system ones, have been added to the test suite. Tests have been fixed for Python3.4 as well.

BugFix for Beta 7 (2)

22 Dec 16:00
Compare
Choose a tag to compare

Mainly fixes for Daijin, in order to be able to handle different versions of Trinity, GMAP and PortCullis.

BugFix for Beta 7

16 Dec 17:59
Compare
Choose a tag to compare

BugFix release:

  • Corrected a bug identified by Hugo Darras, whereby Mikado crashed when asked not to report alternative splicing events
  • Mikado compare now supports compressing the outputs
  • Bug fix for Mikado util stats - now it functions also when exonic features contain "derived_from" tags
  • Bug fix for bam2gtf.py