#ifndef WRITERESULTS_H_
#define WRITERESULTS_H_
+#include<cmath>
#include<cstdio>
#include<vector>
#include<string>
if (verbose) { printf("Expression Results are written!\n"); }
}
-void writeResultsGibbs(int M, char* refName, char* imdName, std::vector<double>& pme_c, std::vector<double>& pme_fpkm, std::vector<double>& pme_tpm) {
+void writeResultsGibbs(int M, int m, int m_trans, GroupInfo& gi, GroupInfo >, GroupInfo &ta, bool alleleS, char* imdName, std::vector<double>& pme_c, std::vector<double>& pme_fpkm, std::vector<double>& pme_tpm, std::vector<double>& pve_c, std::vector<double>& pve_c_genes, std::vector<double>& pve_c_trans) {
char outF[STRLEN];
FILE *fo;
- int m;
- GroupInfo gi;
- char groupF[STRLEN];
std::vector<double> isopct;
std::vector<double> 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<double> 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);
}
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);
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++)
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++)
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++)
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"); }