File: Starter_Bank.cpp

package info (click to toggle)
mapsembler2 2.1.6%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 4,116 kB
  • ctags: 3,391
  • sloc: cpp: 27,549; ansic: 2,662; asm: 271; sh: 226; makefile: 153
file content (72 lines) | stat: -rw-r--r-- 2,281 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//
//  Starter_Banks.cpp
//  
//
//  Created by Pierre Peterlongo on 25/10/2012
//
#include <iostream>
#include "Starter_Bank.h"
extern int size_seeds;



Starter_Bank::Starter_Bank(Fragment_Bank *fragment_bank){
  for (int i=0;i<fragment_bank->all_fragments.size();i++){
    starter_bank.push_back(new Starter(fragment_bank->all_fragments[i]));
  }
}

Starter_Bank::~Starter_Bank(){
  starter_bank.clear();
}


Extension_Bank * Starter_Bank::generate_all_substarters(const int min_coverage, const int substitutions_allowed, const int error_correction_threshold, const int size_kmers){
  Extension_Bank * extension_bank = new Extension_Bank();
  
  for(int i=0; i<starter_bank.size();i++){
    	starter_bank[i]->generate_substarters(extension_bank, substitutions_allowed, min_coverage, error_correction_threshold, size_kmers);
//    fprintf(stderr, "found %d result(s) for starter %s with min coverage %d and %d substitutions allowed\n", res, starter_bank[i]->fragment->fragment_sequence, min_coverage, substitutions_allowed);
  }
  return extension_bank;
}


Extension_Bank * Starter_Bank::generate_all_substarter_nomapping(const int size_kmers){
    Extension_Bank * extension_bank = new Extension_Bank();
    
    for(int i=0; i<starter_bank.size();i++){
        starter_bank[i]->generate_substarter_no_mapping(extension_bank, size_kmers);
    }
    return extension_bank;
}


void  Starter_Bank::format_results(const int extension_type, Extension_Bank * extension_bank, string prefix_name){
  bool is_graph;
  if(extension_type==3 || extension_type==4) is_graph=true;
  else is_graph = false;
    
  if(is_graph){
   id_els first_id_els = {};

    //    GraphOutput graph = GraphOutput(prefix_name,2); // 2 = XML format
    GraphOutput graph = GraphOutput(prefix_name,3); // 3 = Json format
    for(int i=0; i<starter_bank.size();i++){
      starter_bank[i]->starter_output_graph(extension_bank,graph, first_id_els);
      graph.print_starter_head(i, (starter_bank[i]->fragment)->fragment_sequence);
    }
    graph.close();
  }
  else{
      string starter_head;
      bool erase = true;
      for(int i=0; i<starter_bank.size();i++){
          starter_bank[i]->starter_output_sequence(extension_bank, i, prefix_name+string(".fasta"), erase);
	  erase = false;
    }
  }
}