Skip to content

Commit 0f76583

Browse files
author
Nalini Ganapati
committed
Add back REF/ALT to csv output in addition to resolved GT fields
1 parent 964fb7a commit 0f76583

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/genomicsdb_processor.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,26 @@ class ColumnarVariantCallProcessor : public GenomicsDBVariantCallProcessor {
9292
const int64_t* coordinates,
9393
const genomic_interval_t& genomic_interval,
9494
const std::vector<genomic_field_t>& genomic_fields);
95+
void process_str_field(const std::string& field_name, PyObject *calls, int dims, npy_intp *sizes) {
96+
auto found = std::find(m_field_names.begin(), m_field_names.end(), field_name);
97+
if (found != m_field_names.end()) {
98+
PyDict_SetItem(calls, PyUnicode_FromString(field_name.c_str()),
99+
PyArray_SimpleNewFromData(dims, sizes, NPY_OBJECT, m_string_fields[field_name].data()));
100+
}
101+
}
95102
PyObject* construct_data_frame() {
96103
int dims = 1;
97104
npy_intp sizes[1] = { static_cast<npy_intp>(m_sample_names.size()) };
98105
PyObject *calls = PyDict_New();
99106
PyDict_SetItem(calls, PyUnicode_FromString("Sample"), PyArray_SimpleNewFromData(dims, sizes, NPY_OBJECT, m_sample_names.data()));
100107
PyDict_SetItem(calls, PyUnicode_FromString("CHR"), PyArray_SimpleNewFromData(dims, sizes, NPY_OBJECT, m_chrom.data()));
101108
PyDict_SetItem(calls, PyUnicode_FromString("POS"), PyArray_SimpleNewFromData(dims, sizes, NPY_INT64, m_pos.data()));
102-
109+
// Process REF, ALT and GT first.
110+
process_str_field("REF", calls, dims, sizes);
111+
process_str_field("ALT", calls, dims, sizes);
112+
process_str_field("GT", calls, dims, sizes);
103113
for (auto field_name: m_field_names) {
114+
if (field_name == "REF" || field_name == "ALT" || field_name == "GT") continue;
104115
if (m_string_fields.find(field_name) != m_string_fields.end()) {
105116
PyDict_SetItem(calls, PyUnicode_FromString(field_name.c_str()),
106117
PyArray_SimpleNewFromData(dims, sizes, NPY_OBJECT, m_string_fields[field_name].data()));

src/genomicsdb_processor_columnar.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ void ColumnarVariantCallProcessor::process(const interval_t& interval) {
4141
for (auto& field_type_pair : *genomic_field_types) {
4242
std::string field_name = field_type_pair.first;
4343
genomic_field_type_t field_type = field_type_pair.second;
44-
if (!field_name.compare("END") || !field_name.compare("REF") || !field_name.compare("ALT")) {
44+
if (!field_name.compare("END")) {
4545
continue;
4646
}
4747
m_field_names.push_back(field_name);

0 commit comments

Comments
 (0)