Skip to content

weng-lab/TwoBit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2-bit reader/writer

Version 2.0.10-dev

This is a (work in progress) reader implementation, based on the specs at UCSC, https://genome.ucsc.edu/FAQ/FAQformat#format7. The implementation is intended to be more or less thread safe; to achieve that, each TwoBitSequence has it's own read-only file handle to the 2-bit data.

Installing (Development version)

git clone https://github.com/weng-lab/TwoBit.git
cd TwoBit
git checkout -b develop origin/develop #switch to develop branch
#configure, compiler can be set or environmental CC and CXX will be used
CC=gcc-7 CXX=g++-7 ./configure.py 
#download cppitertools, cppprogutils
./setup.py --compfile compfile.mk --outMakefile makefile-common.mk #compfile.mk created by configure
#compile
make -j 4
#binary now located in TwoBit/bin/
bin/TwoBit
#TwoBit
#1) faToTwoBit
#2) twoBitToFa

TODO

Example use

The following converts a 2-bit file into FASTA format, on stdout.

TwoBit::TwoBitFile f("/home/vanderva/.ucscgenome/hg19.2bit");
std::string buffer;
for (const std::string& s : f.sequenceNames())
{
	f[s].getSequence(buffer);
	std::cout << ">" << s << std::endl;
	for (uint32_t i = 0; i < buffer.size(); i += 80)
	{
		std::cout << buffer.substr(i, 80) << '\n';
	}
	std::cout.flush();
}