1 |
/* |
2 |
* fragments.cpp |
3 |
* TopHat |
4 |
* |
5 |
* Created by Cole Trapnell on 1/14/09. |
6 |
* Copyright 2009 Cole Trapnell. All rights reserved. |
7 |
* |
8 |
*/ |
9 |
|
10 |
#ifdef HAVE_CONFIG_H |
11 |
#include <config.h> |
12 |
#endif |
13 |
|
14 |
#include <cassert> |
15 |
#include "bwt_map.h" |
16 |
#include "fragments.h" |
17 |
|
18 |
void best_fragment_mappings(uint64_t refid, |
19 |
const string& name, |
20 |
HitList& hits_in_ref, |
21 |
ReadTable& it, |
22 |
BestFragmentAlignmentTable& best_status_for_fragments) |
23 |
{ |
24 |
for (size_t i = 0; i < hits_in_ref.size(); ++i) |
25 |
{ |
26 |
BowtieHit& h1 = hits_in_ref[i]; |
27 |
uint64_t fragment_id = h1.insert_id(); |
28 |
uint32_t obs_order = it.observation_order(fragment_id); |
29 |
|
30 |
JunctionSet dummy; |
31 |
FragmentAlignmentGrade s(h1, dummy); |
32 |
|
33 |
pair<FragmentAlignmentGrade, vector<FragmentAlignment*> >& fragment_best |
34 |
= best_status_for_fragments[obs_order]; |
35 |
FragmentAlignmentGrade& current = fragment_best.first; |
36 |
// Is the new status better than the current best one? |
37 |
if (current < s) |
38 |
{ |
39 |
fragment_best.second.clear(); |
40 |
current = s; |
41 |
fragment_best.second.push_back(&h1); |
42 |
} |
43 |
else if (! (s < current)) // is it just as good? |
44 |
{ |
45 |
fragment_best.second.push_back(&h1); |
46 |
} |
47 |
} |
48 |
} |
49 |
|
50 |
bool valid_fragment_alignment(const FragmentAlignmentGrade& g, const FragmentAlignment& a) |
51 |
{ |
52 |
// stub |
53 |
return true; |
54 |
} |