当前位置: 首页>>代码示例>>C++>>正文


C++ TrackList::getTrackReference方法代码示例

本文整理汇总了C++中TrackList::getTrackReference方法的典型用法代码示例。如果您正苦于以下问题:C++ TrackList::getTrackReference方法的具体用法?C++ TrackList::getTrackReference怎么用?C++ TrackList::getTrackReference使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TrackList的用法示例。


在下文中一共展示了TrackList::getTrackReference方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: init


//.........这里部分代码省略.........
				snp.track = i;
				snp.snp = charQry;
				
				snpColumn.snps.push_back(snp);
			}
		}
		
		posLast = position;
		refLast = charRef;
	}
	
	//totalLength = (*tracks[0])[tracks[0]->size() - 1]->getStart() + (*tracks[0])[tracks[0]->size() - 1]->getLength() + gapsTotal;
	
	QString refSeq;
	
	for ( int i = 0; i < referenceList.getReferenceCount(); i++ )
	{
		refSeq.append(QString::fromStdString(referenceList.getReference(i).sequence));
	}
	
	int coreSize = 0;
	
	for ( int i = 0; i < lcbs.size(); i++ )
	{
		const Region * regionRef = (*lcbs[i].regions)[0];
		
		int startGapped = getPositionGapped(regionRef->getStart() - 1) + 1;
		int endGapped = getPositionGapped(regionRef->getStart() + regionRef->getLength()) - 1;
		
		lcbs[i].startGapped = startGapped;
		lcbs[i].lengthGapped = endGapped - startGapped + 1;
		
		coreSize += regionRef->getLength();
	}
	
	core = (float)coreSize / refSeq.length();
	
	qSort(lcbs.begin(), lcbs.end(), lcbLessThan);
	
	totalLength = refSeq.length() + gapsTotal;
	
	refSeqCount = referenceList.getReferenceCount();
	
	if ( refSeqStarts )
	{
		delete [] refSeqStarts;
	}
	
	refSeqStarts = new long long int[refSeqCount];
	
	long long int total = 0;
	
	for ( int i = 0; i < refSeqCount; i++ )
	{
		refSeqStarts[i] = getPositionGapped(total);
		total += referenceList.getReference(i).sequence.length();
	}
	
	if ( refSeqGapped )
	{
		delete [] refSeqGapped;
	}
	
	refSeqGapped = new char[totalLength];
	int gapId = 0;
	gapsTotal = 0;
	
	for ( int i = 0; i < totalLength; i++ )
	{
		if ( gaps.size() && i == gaps[gapId].start )
		{
			while( i <= gaps[gapId].end )
			{
				refSeqGapped[i] = '-';
				i++;
			}
			
			gapsTotal = gaps[gapId].offset;
			
			if ( gapId < gaps.size() - 1 )
			{
				gapId++;
			}
		}
		
		if ( i - gapsTotal < refSeq.length() )
		{
			refSeqGapped[i] = refSeq.at(i - gapsTotal).toLatin1(); // TODO: gap at pos 0?
		}
	}
	
	if ( trackList.getTrackReference() > 0 )
	{
		setTrackReference(trackList.getTrackReference());
	}
	
	setFilterScale();
	
	return true;
}
开发者ID:marbl,项目名称:gingr,代码行数:101,代码来源:Alignment.cpp


注:本文中的TrackList::getTrackReference方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。