[med-svn] [Git][med-team/covtobed][upstream] New upstream version 1.1.4+dfsg

Nilesh Patra gitlab at salsa.debian.org
Tue Sep 22 14:15:36 BST 2020



Nilesh Patra pushed to branch upstream at Debian Med / covtobed


Commits:
67aa1fbc by Nilesh Patra at 2020-09-22T18:25:28+05:30
New upstream version 1.1.4+dfsg
- - - - -


4 changed files:

- .gitignore
- CONTRIBUTING.md
- base.cpp
- benchmark/disk_file.sh


Changes:

=====================================
.gitignore
=====================================
@@ -18,3 +18,6 @@ pannelli
 paper/paper.md~
 TE
 split_sam_by_flag.pl
+mini_tests
+.vscode
+prova.sh


=====================================
CONTRIBUTING.md
=====================================
@@ -1,4 +1,6 @@
-If you wish to fix a bug or add new features to the software we welcome Pull Requests. 
+# Contributing to `covtobed`
+
+If you wish to fix a bug or add new features to the software we welcome **Pull Requests**. 
 
 We use [GitHub Flow style development](https://guides.github.com/introduction/flow/). 
 


=====================================
base.cpp
=====================================
@@ -1,4 +1,4 @@
-	#include <queue>
+#include <queue>
 #include <vector>
 #include <iostream>
 #include <map>
@@ -16,7 +16,7 @@ using namespace std;
 typedef uint32_t DepthType; // type for depth of coverage, kept it small
 const char ref_char = '>';  // reference prefix for "counts" output
 
-const string VERSION = "%prog 1.1.2"
+const string VERSION = "%prog 1.1.4"
 	"\nCopyright (C) 2014-2019 Giovanni Birolo and Andrea Telatin\n"
 	"https://github.com/telatin/covtobed - License MIT"
 	".\n"
@@ -61,11 +61,17 @@ class Input {
 		bool get_next_alignment(BamAlignment & alignment) {
 			bool more_alignments, good_alignment;
 			do {
-				debug cerr << "[M] " << alignment.Name << ":" << alignment.Position << " | Is mapped? " << alignment.IsMapped() << endl;
+				debug cerr << "[M] Read  on ref#" << alignment.RefID << " pos:" << alignment.Position << 
+				    "\n\t| Is mapped? " << alignment.IsMapped() << " | AlignmentFlag:" << alignment.AlignmentFlag << endl;
 				more_alignments = input_bams.GetNextAlignmentCore(alignment);
 				if (discard_invalid_alignments) {
 					good_alignment = alignment.IsMapped() && alignment.MapQuality >= min_mapq
-									&& !alignment.IsDuplicate() && !alignment.IsFailedQC() && alignment.IsPrimaryAlignment() ;
+									&& !alignment.IsDuplicate() && !alignment.IsFailedQC() && alignment.IsPrimaryAlignment();
+
+					// 1.2.0 ProperPair
+					if (alignment.IsPaired() && ! alignment.IsProperPair() ) {
+					    good_alignment = false;
+					}
 				} else {
 					good_alignment = alignment.IsMapped() && alignment.MapQuality >= min_mapq;
 				}
@@ -210,6 +216,7 @@ int main(int argc, char *argv[]) {
 		min_mapq = options.get("min_mapq");
 	}
 
+
 	try {
 		// open input and output
 		Input input(parser.args(), min_mapq, only_valid);
@@ -247,6 +254,7 @@ int main(int argc, char *argv[]) {
 				while (more_alignments_for_ref && next_change == alignment.Position) {
 					if (physical_coverage) {
 						if (alignment.InsertSize > 0) {
+						        debug cerr << "   [phy] pos:" << alignment.Position << " size:" << alignment.InsertSize << endl;
 							coverage_ends.push({alignment.Position + alignment.InsertSize, alignment.IsReverseStrand()});
 							coverage.inc(alignment.IsReverseStrand());
 						}
@@ -266,9 +274,13 @@ int main(int argc, char *argv[]) {
 				debug cerr << "[<] Coverage is " << coverage << " from " << next_change << endl;
 				last_pos = next_change;
 			} while (last_pos != ref.RefLength);
-			debug cerr << "[_] Completed at " << ref.RefName << ":" << last_pos << endl;
+			debug cerr << "[_] Completed at " << ref.RefName << ":" << last_pos << " [coverage:"  << coverage_ends.size() << "]" << endl;
 			// reference ended
-			assert(coverage_ends.empty());
+			if (!coverage_ends.empty()) {
+			    cerr << "Coverage is not zero at the end of " << ref.RefName << endl;
+			    cerr << "Try samtools fixmate on the input file" << endl;
+			}
+			// 1.2.0 -- removed: assert(coverage_ends.empty());
 		}
 		//assert(!more_alignments);
 		if (more_alignments) {


=====================================
benchmark/disk_file.sh
=====================================
@@ -20,14 +20,13 @@ if [ ! -e "$FILE" ]; then
 	exit
 fi
 
-	TAG=$(basename $FILE | cut -f1 -d.)
+TAG=$(basename $FILE | cut -f1 -d.)
 
-	echo "$TAG [$FILE]"
-	hyperfine --warmup 2 --min-runs 6 --cleanup 'rm *.bed mos?_*.* || true' \
+echo "$TAG [$FILE]"
+hyperfine --warmup 2 --min-runs 6 --cleanup 'rm *.bed mos?_*.* || true' \
 		--export-markdown disk_$TAG.md \
 		"mosdepth -F 4 -x -t 4 mos4_ $FILE" \
 		"mosdepth -F 4 -x      mos1_ $FILE" \
 		"covtobed $FILE > covtobed_$TAG.bed" \
-		"sambamba depth base -F 'not unmapped' $FILE > sambamba.txt.bed" \
-		"sambamba depth window -F 'not unmapped' -w 1000 $FILE > sambamba2.txt.bed"\
 		"bedtools genomecov -bga -ibam $FILE > bedtools_$TAG.bed"
+



View it on GitLab: https://salsa.debian.org/med-team/covtobed/-/commit/67aa1fbca9e3e37bd888f184c377867a3ad5a13f

-- 
View it on GitLab: https://salsa.debian.org/med-team/covtobed/-/commit/67aa1fbca9e3e37bd888f184c377867a3ad5a13f
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20200922/963591b9/attachment-0001.html>


More information about the debian-med-commit mailing list