Skip to content

Commit 74a3852

Browse files
committed
Increased VCF line buffer size to support VCFs with many samples.
1 parent 7b12e1d commit 74a3852

File tree

4 files changed

+7
-6
lines changed

4 files changed

+7
-6
lines changed

src/VcfAnnotateFromVcf/ChunkProcessor.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,12 @@ QByteArrayList getVcfHeaderLines(const QByteArray &vcf_file_path, QByteArrayList
164164
return QByteArrayList();
165165
}
166166

167-
char* buffer = new char[1048576]; //1MB buffer
167+
const int buffer_size = 10485760; //10MB buffer (necessary for large multi-sample VCFs)
168+
char* buffer = new char[buffer_size];
168169
while(!gzeof(vcfgz_file))
169170
{
170171

171-
char* char_array = gzgets(vcfgz_file, buffer, 1048576);
172+
char* char_array = gzgets(vcfgz_file, buffer, buffer_size);
172173

173174
//handle errors like truncated GZ file
174175
if (char_array==nullptr)

src/VcfAnnotateFromVcf/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ class ConcreteTool
238238
THROW(FileAccessException, "Could not open file '" + input_path + "' for reading!");
239239
}
240240

241-
const int buffer_size = 1048576; //1MB buffer
241+
const int buffer_size = 10485760; //10MB buffer (necessary for large multi-sample VCFs)
242242
char* buffer = new char[buffer_size];
243243
int current_chunk = 0;
244244
int vcf_line_idx = 0;

src/VcfToBedpe/VcfToBedpe.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ VcfToBedpe::VcfToBedpe(const QByteArray& filename)
185185
{
186186
//set buffer size for gz file line
187187
filename_ = filename;
188-
buffer_size_ = 1048576; //1MB buffer
188+
buffer_size_ = 10485760; //10MB buffer (necessary for large multi-sample VCFs)
189189
buffer_ = new char[buffer_size_];
190190

191191
file_ = gzopen(filename.data(),"rb");

src/cppNGS/VcfFile.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ void VcfFile::loadFromVCFGZ(const QString& filename, bool allow_multi_sample, Ch
393393

394394
//parse
395395
int line_number = 0;
396-
const int buffer_size = 1048576; //1MB buffer
396+
const int buffer_size = 10485760; //10MB buffer (necessary for large multi-sample VCFs)
397397
char* buffer = new char[buffer_size];
398398
//Sets holding all INFO and FORMAT IDs defined in the header (might be extended if a vcf line contains new ones)
399399
QSet<QByteArray> info_ids_in_header;
@@ -1254,7 +1254,7 @@ bool VcfFile::isValid(QString filename, QString ref_file, QTextStream& out_strea
12541254
bool in_header = true;
12551255
int c_data = 0;
12561256
int l = 0;
1257-
const int buffer_size = 1048576; //1MB buffer
1257+
const int buffer_size = 10485760; //10MB buffer (necessary for large multi-sample VCFs)
12581258
char* buffer = new char[buffer_size];
12591259
while(!gzeof(file) && l<max_lines)
12601260
{

0 commit comments

Comments
 (0)