diff --git a/build.gradle.kts b/build.gradle.kts index 16509e7e9..0d94ca2a0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -134,14 +134,14 @@ val toObfuscate: Configuration by configurations.creating { val obfuscationLibs: Configuration by configurations.creating -val mixcrAlgoVersion = "4.3.0-24-fix_alleles" +val mixcrAlgoVersion = "4.3.0-27-develop" val milibVersion = "2.4.0-4-master" -val mitoolVersion = "1.7.0" -val repseqioVersion = "1.8.0-10-fix_mark_alleles" +val mitoolVersion = "1.7.0-1-main" +val repseqioVersion = "1.8.0-11-master" val picocliVersion = "4.6.3" val jacksonBomVersion = "2.14.2" -val milmVersion = "3.3.0" +val milmVersion = "3.4.0" val cliktVersion = "3.5.0" val jcommanderVersion = "1.72" diff --git a/changelogs/v4.3.1.md b/changelogs/v4.3.1.md index 04c0af971..22d55900e 100644 --- a/changelogs/v4.3.1.md +++ b/changelogs/v4.3.1.md @@ -5,8 +5,10 @@ - added `-isProductive ` column to export - improvements of report and alleles description table for `findAlleles` command - removing of unused genes from result library in `findAlleles` command -- 'findAlleles' now more resilient to case when most allele variants of donor differ from *00 alleles in a library +- `findAlleles` now more resilient to case when most allele variants of donor differ from `*00` alleles in a library -# Bug fixes +## Bug fixes - fixed AssertionError in `findAlleles` command with `--output-template` argument +- fixed wrong behaviour with `inferMinRecordsPerConsensus == true` and cell level assembly +- fixed `minRecordsPerConsensus` inference mechanism for new filtering features introduced in previous version (4.3.0) diff --git a/src/main/kotlin/com/milaboratory/mixcr/cli/CommandAssemble.kt b/src/main/kotlin/com/milaboratory/mixcr/cli/CommandAssemble.kt index 6e49996ea..2b48f5208 100644 --- a/src/main/kotlin/com/milaboratory/mixcr/cli/CommandAssemble.kt +++ b/src/main/kotlin/com/milaboratory/mixcr/cli/CommandAssemble.kt @@ -214,6 +214,8 @@ object CommandAssemble { if (!cp.inferMinRecordsPerConsensus || cp.consensusAssemblerParameters == null) return@resolve cp + // All the code below executed only if inferMinRecordsPerConsensus == true + if (cp.consensusAssemblerParameters!!.assembler.minRecordsPerConsensus != 0) { println( "WARNING: minRecordsPerConsensus has non default value (not equal to 0), the automatic " + @@ -222,10 +224,10 @@ object CommandAssemble { return@resolve cp } - val groupingLevel = if (cp.cellLevel) TagType.Cell else TagType.Molecule - val groupingTags = (0 until inputHeader.tagsInfo.getDepthFor(groupingLevel)) + // Here we search specifically for "reads per UMI" threshold, even if we do cell-level assembly, + // as the most meaningful estimation for the minRecordsPerConsensus parameter + val groupingTags = (0 until inputHeader.tagsInfo.getDepthFor(TagType.Molecule)) .map { i -> inputHeader.tagsInfo[i].name } - val threshold = inputFooter.thresholds[MinGroupsPerGroup(groupingTags, null)] if (threshold == null) { println(