X-Git-Url: https://git.donarmstrong.com/?p=rsem.git;a=blobdiff_plain;f=WriteResults.h;h=79ba5b2d0449cadfc57c771c8104d7896906074e;hp=95aa7b0b12251b1527c859d132970a26e3fdd5dd;hb=910250881a4c3e48a33aa427b82131acda914da3;hpb=4f7502168c3816ba3283385f093e599527e2b144 diff --git a/WriteResults.h b/WriteResults.h index 95aa7b0..79ba5b2 100644 --- a/WriteResults.h +++ b/WriteResults.h @@ -1,6 +1,7 @@ #ifndef WRITERESULTS_H_ #define WRITERESULTS_H_ +#include #include #include #include @@ -336,28 +337,16 @@ void writeResultsEM(int M, const char* refName, const char* imdName, Transcripts if (verbose) { printf("Expression Results are written!\n"); } } -void writeResultsGibbs(int M, char* refName, char* imdName, std::vector& pme_c, std::vector& pme_fpkm, std::vector& pme_tpm) { +void writeResultsGibbs(int M, int m, int m_trans, GroupInfo& gi, GroupInfo >, GroupInfo &ta, bool alleleS, char* imdName, std::vector& pme_c, std::vector& pme_fpkm, std::vector& pme_tpm, std::vector& pve_c, std::vector& pve_c_genes, std::vector& pve_c_trans) { char outF[STRLEN]; FILE *fo; - int m; - GroupInfo gi; - char groupF[STRLEN]; std::vector isopct; std::vector gene_counts, gene_tpm, gene_fpkm; - // Load group info - sprintf(groupF, "%s.grp", refName); - gi.load(groupF); - m = gi.getm(); - // For allele-specific expression - int m_trans = 0; - GroupInfo gt, ta; std::vector trans_counts, trans_tpm, trans_fpkm, ta_pct, gt_pct; - bool alleleS = isAlleleSpecific(refName, >, &ta); // if allele-specific - //calculate IsoPct, etc. isopct.assign(M + 1, 0.0); gene_counts.assign(m, 0.0); gene_tpm.assign(m, 0.0); gene_fpkm.assign(m, 0.0); @@ -375,7 +364,6 @@ void writeResultsGibbs(int M, char* refName, char* imdName, std::vector& } if (alleleS) { - m_trans = ta.getm(); ta_pct.assign(M + 1, 0.0); trans_counts.assign(m_trans, 0.0); trans_tpm.assign(m_trans, 0.0); trans_fpkm.assign(m_trans, 0.0); @@ -407,6 +395,8 @@ void writeResultsGibbs(int M, char* refName, char* imdName, std::vector& for (int i = 1; i <= M; i++) fprintf(fo, "%.2f%c", pme_c[i], (i < M ? '\t' : '\n')); + for (int i = 1; i <= M; i++) + fprintf(fo, "%.2f%c", sqrt(pve_c[i]), (i < M ? '\t' : '\n')); for (int i = 1; i <= M; i++) fprintf(fo, "%.2f%c", pme_tpm[i], (i < M ? '\t' : '\n')); for (int i = 1; i <= M; i++) @@ -423,6 +413,8 @@ void writeResultsGibbs(int M, char* refName, char* imdName, std::vector& for (int i = 1; i <= M; i++) fprintf(fo, "%.2f%c", pme_c[i], (i < M ? '\t' : '\n')); + for (int i = 1; i <= M; i++) + fprintf(fo, "%.2f%c", sqrt(pve_c[i]), (i < M ? '\t' : '\n')); for (int i = 1; i <= M; i++) fprintf(fo, "%.2f%c", pme_tpm[i], (i < M ? '\t' : '\n')); for (int i = 1; i <= M; i++) @@ -440,6 +432,8 @@ void writeResultsGibbs(int M, char* refName, char* imdName, std::vector& for (int i = 0; i < m_trans; i++) fprintf(fo, "%.2f%c", trans_counts[i], (i < m_trans - 1 ? '\t' : '\n')); + for (int i = 0; i < m_trans; i++) + fprintf(fo, "%.2f%c", sqrt(pve_c_trans[i]), (i < m_trans - 1 ? '\t' : '\n')); for (int i = 0; i < m_trans; i++) fprintf(fo, "%.2f%c", trans_tpm[i], (i < m_trans - 1 ? '\t' : '\n')); for (int i = 0; i < m_trans; i++) @@ -455,11 +449,13 @@ void writeResultsGibbs(int M, char* refName, char* imdName, std::vector& general_assert(fo != NULL, "Cannot open " + cstrtos(outF) + "!"); for (int i = 0; i < m; i++) - fprintf(fo, "%.2f%c", gene_counts[i], (i < m - 1 ? '\t' : '\n')); + fprintf(fo, "%.2f%c", gene_counts[i], (i < m - 1 ? '\t' : '\n')); + for (int i = 0; i < m; i++) + fprintf(fo, "%.2f%c", sqrt(pve_c_genes[i]), (i < m - 1 ? '\t' : '\n')); for (int i = 0; i < m; i++) - fprintf(fo, "%.2f%c", gene_tpm[i], (i < m - 1 ? '\t' : '\n')); + fprintf(fo, "%.2f%c", gene_tpm[i], (i < m - 1 ? '\t' : '\n')); for (int i = 0; i < m; i++) - fprintf(fo, "%.2f%c", gene_fpkm[i], (i < m - 1 ? '\t' : '\n')); + fprintf(fo, "%.2f%c", gene_fpkm[i], (i < m - 1 ? '\t' : '\n')); fclose(fo); if (verbose) { printf("Gibbs based expression values are written!\n"); }