Ejemplo n.º 1
0
void print_leftovers(Read const &read, const char * tag, std::ostream *LEFTOVER_FP)
{
	_stats.alignment_num_unmapped++ ;
	
	if (read.get_orig()==NULL)
	{
		if (read.format() == 0)
			fprintf(LEFTOVER_FP, "@%s%s\n%s\n+\n%s\n", read.id(), tag, read.data(), read.quality(0));
		else if (read.format() == 1)
			fprintf(LEFTOVER_FP, ">%s%s\n%s\n", read.id(), tag, read.data());
		else {
			fprintf(LEFTOVER_FP, "%s%s\t%s\t%d", read.id(), tag, read.data(), read.pe_flag());
			if (strlen(read.quality(0)) > 0) fprintf(LEFTOVER_FP, "\t%s", read.quality(0));
			if (strlen(read.quality(1)) > 0) fprintf(LEFTOVER_FP, "\t%s", read.quality(1));
			if (strlen(read.quality(2)) > 0) fprintf(LEFTOVER_FP, "\t%s", read.quality(2));
			fprintf(LEFTOVER_FP, "\n");
		}
	}
	else
	{
		if (read.format() == 0)
			fprintf(LEFTOVER_FP, "@%s%s\n%s\n+\n%s\n", read.id(), tag, read.get_orig()->data(), read.get_orig()->quality(0));
		else if (read.format() == 1)
			fprintf(LEFTOVER_FP, ">%s%s\n%s\n", read.id(), tag, read.get_orig()->data());
		else {
			fprintf(LEFTOVER_FP, "%s%s\t%s\t%d", read.id(), tag, read.get_orig()->data(), read.pe_flag());
			if (strlen(read.get_orig()->quality(0)) > 0) fprintf(LEFTOVER_FP, "\t%s", read.get_orig()->quality(0));
			if (strlen(read.get_orig()->quality(1)) > 0) fprintf(LEFTOVER_FP, "\t%s", read.get_orig()->quality(1));
			if (strlen(read.get_orig()->quality(2)) > 0) fprintf(LEFTOVER_FP, "\t%s", read.get_orig()->quality(2));
			fprintf(LEFTOVER_FP, "\n");
		}
	}
}
Ejemplo n.º 2
0
void print_alignment_matrix(Read const &read, int chrstart, int readstart, int length,
		int offset_front, int offset_end, Chromosome const &chr, char ori, int K) {
	int i, j;

	printf(" k=%d |\t-\t", K);
	if (ori == '+')
		for (i = 0; i != length; i++)
			printf("%c\t", chr[chrstart + i]);
	else
		for (i = 0; i != length; i++)
			printf("%c\t", get_compl_base(chr[chrstart - i]));
	printf(
			"\n----------------------------------------------------------------------------------------------");
	printf(
			"----------------------------------------------------------------------------------------------\n");

	for (j = 0; j != length + 1; ++j) {
		if (j == 0)
			printf("  -  |\t");
		else {
			if ((readstart == 0 && (j <= offset_front || (j > length
					- offset_end && K != 1))) || (readstart != 0 && j > length
					- offset_end))
				printf("  X  |\t");
			else
				printf("  %c  |\t", read.data()[readstart + j - (readstart == 0)
						* offset_front - 1]);
		}

		if (j > K)
			for (i = 0; i != j - K; ++i)
				printf("\t");

		for (i = 0; i != 2* K + 1; ++i) {
			if (i - j > K)
				break;
			if (i + j > length + K)
				break;
			if (i > length || j > length)
				break;
			if ((readstart != 0 && j > length - offset_end) || (readstart == 0
					&& j < offset_front))
				break;
			//printf("{i%d,j%d}",i,j);
			//printf("%.1f(%c)\t", M[i][j], T[i][j]);
			if (i == 6 && j == 1)
				printf("---");
		}

		printf(
				"\n----------------------------------------------------------------------------------------------");
		printf(
				"----------------------------------------------------------------------------------------------\n");
	}

}