亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.cpp

?? ViennaRNA-1.6.1
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*  Copyright by Matthias Hoechsmann (C) 2002-2004  =====================================                                     You may use, copy and distribute this file freely as long as you  - do not change the file,  - leave this copyright notice in the file,  - do not make any profit with the distribution of this file  - give credit where credit is due  You are not allowed to copy or distribute this file otherwise  The commercial usage and distribution of this file is prohibited  Please report bugs and suggestions to <mhoechsm@TechFak.Uni-Bielefeld.DE>*/#include <deque>#include <functional>#include <fstream>#include <iomanip>#include <iostream>#include <list>#include <sstream>#include <string>#include <map>//#include <sys/timeb.h>
#include <sys/times.h>
#include <unistd.h>
#ifndef WIN32#include "config.h"#endif#include "Arguments.h"#include "alignment.h"#include "debug.h"
//#include "global_alignment.h"
#include "treeedit.h"#include "misc.h"
#include "progressive_align.h"
#include "rna_alignment.h"#include "rnaforest.h"
#include "rnaforestsz.h"#include "rnafuncs.h"#include "rna_profile_alignment.h"#include "rna_algebra.h"#include "rnaforester_options.h"#include "alignment.t.cpp"
//#include "global_alignment.t.cpp"
#include "treeedit.t.cpp"//#include "ppforest.t.cpp"using namespace std;/* ****************************************** *//*          Definitions and typedefs          *//* ****************************************** */struct ToLower : public unary_function<char,char> {	char operator()(char a)	{		return tolower(a);	};};template <class L>void makeDotFileAli(const PPForest<L> &ppf, const RNAforesterOptions &options){	if(options.has(RNAforesterOptions::OutputAlignmentDotFormat))	{		string filename;		options.get(RNAforesterOptions::OutputAlignmentDotFormat,filename,string("ali.dot"));		ofstream s(filename.c_str());		ppf.printDot(s);	}}template <class L>void makeDotFileInp(const PPForest<L> &ppf, const RNAforesterOptions &options, Uint count){	if(options.has(RNAforesterOptions::MakeDotForInputTrees))	{		ostringstream ss;		ofstream os;		ss << "input" << count << ".dot";		os.open(ss.str().c_str());		ppf.printDot(os);		os.close();	}}static const string RNAFORESTER_VERSION = "1.5";static const string PROMPT = "Input string (upper or lower case); & to end for multiple alignments, @ to quit\n";static const string SCALE = "....,....1....,....2....,....3....,....4....,....5....,....6....,....7....,....8\n";void alignMultiple(deque<RNAProfileAlignment*> &alignList, Score &score,const RNAforesterOptions &options);void alignPairwise(deque<RNAForest*> &inputListPW,Score &score,const RNAforesterOptions &options);void cutAfterChar(string &s,char c);void editPairwise(list<RNAForestSZ*> &inputListSZ,Score &score,RNAforesterOptions &options);void alignPairwiseSimple(deque<RNAForest*> &inputListPW,Score &score,RNAforesterOptions &options);
static void showversion(const char *prog){	cout << prog << ", version " << RNAFORESTER_VERSION << endl;	cout << "Copyright Matthias Hoechsmann 2001-2004," << endl << "mhoechsm@techfak.uni-bielefeld.de" << endl;}int main(int argc, const char **argv){		string buffer;	string baseStr,viennaStr,nameStr;	Ulong basePairCount,maxDepth;	deque<RNAForest*> inputListPW;	deque<RNAProfileAlignment*> alignList;	bool showScale=true,multipleAlign=false;	istream *inputStream=NULL;	ifstream *inputFile=NULL;	Uint structure_count=1;	int suboptPercent=100;	double minPairProb=0.25;	list<RNAForestSZ*> inputListSZ;	try	{		RNAforesterOptions options(argc,argv);		// check options		if(options.has(RNAforesterOptions::Help))		{			options.help();			exit(EXIT_SUCCESS);		}		if(options.has(RNAforesterOptions::SecretHelp))		{			options.secretHelp();			exit(EXIT_SUCCESS);		}		if(options.has(RNAforesterOptions::Version))		{			showversion(argv[0]);			exit(EXIT_SUCCESS);      		}		// read score values		Score score(options);		if(!options.has(RNAforesterOptions::ShowOnlyScore))			score.print();		// check option suboptimals		if(options.has(RNAforesterOptions::LocalSubopts))		{			options.get(RNAforesterOptions::LocalSubopts,suboptPercent,100);			if(suboptPercent<0 || suboptPercent>100)			{				cerr << "error: value for parameter --subopts must be in range from 0 to 100" << endl;				exit(EXIT_FAILURE);			}		}#ifdef HAVE_LIBRNA  // This features require the ViennaRNA library				options.get(RNAforesterOptions::PredictMinPairProb,minPairProb,0.25);		if(options.has(RNAforesterOptions::PredictProfile))		  cout << "Minumim required basepair probability (-pmin): " << minPairProb << endl;#endif				// show if suboptimals		if(!options.has(RNAforesterOptions::ShowOnlyScore))			if(options.has(RNAforesterOptions::LocalSimilarity) && options.has(RNAforesterOptions::LocalSubopts))			  cout << "calculate suboptimals within " << suboptPercent << "% of global optimum" << endl << endl;		// profile search		if(options.has(RNAforesterOptions::ProfileSearch))		  {		    string filename;		    		    options.get(RNAforesterOptions::ProfileSearch,filename,string(""));		    if(filename=="")		      {			cerr << "no profile filename" << endl;			exit(EXIT_FAILURE);		      }		    		    RNAProfileAlignment *rnaProfileAli=new RNAProfileAlignment(filename);		    alignList.push_back(rnaProfileAli);		  }		if(options.has(RNAforesterOptions::ReadFromFile))		{			string filename;			options.get(RNAforesterOptions::ReadFromFile,filename,string(""));			inputFile=new ifstream(filename.c_str());			if(inputFile->fail())			{				cerr << "cannot open file: \"" << filename << "\"" << endl;				exit(EXIT_FAILURE);			}			inputStream=inputFile;		}		else
		{			inputStream=&cin;
		}

		if(showScale)		  {		    if(!options.has(RNAforesterOptions::NoScale) && !options.has(RNAforesterOptions::ReadFromFile))		      cout << endl << PROMPT << SCALE;		    showScale=false;		  }		for(;;)		{			getline(*inputStream,buffer);			if(inputStream->eof())			  {			    			    if(options.has(RNAforesterOptions::Multiple) && !options.has(RNAforesterOptions::ProfileSearch))				buffer="&";			    else			      exit(EXIT_SUCCESS);			  }			if(buffer.empty())				continue;			// quit if character is @			if(buffer[0]=='@')				break;			// delete '\r' at line end from non unix files			if(buffer[buffer.size()-1]=='\r')				buffer.erase(buffer.size()-1);			// check for name of structure			if(buffer[0]=='>')			{				nameStr=&buffer[1];				continue;			}			// cut after blank			cutAfterChar(buffer,' ');			// check for aligning multiple structures			// if input is read from file the eof has the same meaning as &			if( buffer[0]=='&')				multipleAlign=true;			else			{				// check for base string			  			  if(RNAFuncs::isRNAString(buffer))				{				  baseStr=buffer;				  // convert to small letters				  transform(baseStr.begin(),baseStr.end(),baseStr.begin(),ToLower());				  // t -> u				  replace(baseStr.begin(),baseStr.end(),'t','u');				  // delete '.'  and '-' from alignment files				  remove(baseStr.begin(),baseStr.end(),'.');				  remove(baseStr.begin(),baseStr.end(),'-');#ifdef HAVE_LIBRNA  // This features require the ViennaRNA library				  				  if(options.has(RNAforesterOptions::PredictProfile))				    {				      ostringstream ss;		 				      string constraint;				      // if there is no name given (> ...) use a counter				      if(nameStr=="")					ss << "> " << structure_count;				      else					ss << nameStr;					      				      cout << "Predicting structure profile for sequence: " << ss.str() << endl;				      RNAProfileAlignment *rnaProfileAli=new RNAProfileAlignment(baseStr,ss.str(),constraint,minPairProb);				      alignList.push_back(rnaProfileAli);				      makeDotFileInp(*rnaProfileAli,options,structure_count);				      structure_count++;				    }#endif				  				  //				  continue;				}			  else			    {				// check for vienna string				  if(RNAFuncs::isViennaString(buffer,basePairCount,maxDepth))			    {#ifdef HAVE_LIBRNA  // This features require the ViennaRNA library			      			      // skip structure lines if structures are predicted			      if(options.has(RNAforesterOptions::PredictProfile))				{				  cout << "ignoring structure: " << buffer << endl;				  continue;				}#endif			      			     viennaStr=buffer;	       			    }			  else   				{ 					cerr << "The input sequence is neither an RNA/DNA string nor in vienna format." << endl;
					cerr << "line: " << buffer << endl;					showScale=true;					exit(EXIT_FAILURE);				}				// add structure to input list				if(options.has(RNAforesterOptions::Multiple))				{					ostringstream ss;		 					// if there is no name given (> ...) use a counter					if(nameStr=="")					  ss << "> " << structure_count;					else					  ss << nameStr;						RNAProfileAlignment *rnaProfileAli=new RNAProfileAlignment(baseStr,viennaStr,ss.str());					makeDotFileInp(*rnaProfileAli,options,structure_count);										alignList.push_back(rnaProfileAli); 					}				else				{
				  if(options.has(RNAforesterOptions::TreeEdit))				    {				      RNAForestSZ *rnaForestSZ=new RNAForestSZ(baseStr,viennaStr,nameStr);				      inputListSZ.push_back(rnaForestSZ);				    }				  else				    {				      RNAForest *rnaForest=new RNAForest(baseStr,viennaStr,nameStr);							      nameStr="";				      makeDotFileInp(*rnaForest,options,structure_count);				      inputListPW.push_back(rnaForest);				    }				}				structure_count++;      				showScale=true;			}			}			// ***** multiple alignment			if((options.has(RNAforesterOptions::Multiple) && multipleAlign) || (options.has(RNAforesterOptions::ProfileSearch) && alignList.size()==2))			{				alignMultiple(alignList,score,options);				multipleAlign=false;				structure_count=1;								if(options.has(RNAforesterOptions::ProfileSearch))				  {				    string filename;		    				    options.get(RNAforesterOptions::ProfileSearch,filename,string(""));		    		    				    RNAProfileAlignment *rnaProfileAli=new RNAProfileAlignment(filename);				    alignList.push_back(rnaProfileAli);				  }				else				  break;				//				break;			}			// ***** pairwise alignment			if(inputListPW.size()==2)
			{			  if(options.has(RNAforesterOptions::GlobalAlignment))			    alignPairwiseSimple(inputListPW,score,options);			  else			    alignPairwise(inputListPW,score,options);			  break;			}						if(inputListSZ.size()==2)			{			  editPairwise(inputListSZ,score,options);			  break;			}		}		// free dynamic allocated memory		deque<RNAForest*>::const_iterator it;		for(it = inputListPW.begin(); it!=inputListPW.end(); it++)			delete *it;		DELETE(inputFile);		//	  getchar();	// only for testing		return (0);	}	catch(RNAforesterOptions::IncompatibleException e)	{		e.showError();		return(EXIT_FAILURE);	} 	catch(RNAforesterOptions::RequiresException e)	{		e.showError();		return(EXIT_FAILURE);	} }void cutAfterChar(string &s,char c){	string::size_type pos=s.find(c);	if(pos!=string::npos)		s.erase(pos);}void alignMultiple(deque<RNAProfileAlignment*> &alignList, Score &score,const RNAforesterOptions &options){	DoubleScoreProfileAlgebraType *alg;	deque<pair<double,RNAProfileAlignment*> > resultList;//	double optScore;	Uint clusterNr=1;	double minPairProb;	options.get(RNAforesterOptions::ConsensusMinPairProb,minPairProb,0.5);		// distance or similarity	if(options.has(RNAforesterOptions::CalculateDistance))		alg=new DoubleDistProfileAlgebra(score);	else		alg=new DoubleSimiProfileAlgebra(score);	cout << endl;		progressiveAlign(alignList,resultList,alg,options);	cout << endl;	cout << "*** Results ***" << endl << endl; 	cout << "Minimum basepair probability for consensus structure (-cmin): " << minPairProb << endl << endl;	deque<pair<double,RNAProfileAlignment*> >::const_iterator it;	for(it=resultList.begin();it!=resultList.end();it++)	  {	    cout << "RNA Structure Cluster Nr: " << clusterNr << endl;	    cout << "Score: " << it->first << endl;	    cout << "Members: " << it->second->getNumStructures() << endl << endl;	    if(options.has(RNAforesterOptions::FastaOutput))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久久久久久久久久久久 | 亚洲欧美一区二区三区极速播放| 狠狠狠色丁香婷婷综合激情| 日韩精品一区二区三区中文不卡 | 精品少妇一区二区三区在线播放| 伦理电影国产精品| 欧美va亚洲va香蕉在线| 国产一区二区在线电影| 中文字幕精品在线不卡| 91丨porny丨最新| 亚洲香蕉伊在人在线观| 日韩午夜av一区| 国产高清不卡一区二区| 亚洲天天做日日做天天谢日日欢| 欧美色综合天天久久综合精品| 日本va欧美va欧美va精品| 久久蜜臀中文字幕| 色婷婷久久99综合精品jk白丝| 亚洲v中文字幕| 精品久久久久久亚洲综合网| 99久久久久免费精品国产| 午夜久久久影院| 久久女同互慰一区二区三区| 91免费看视频| 久久久久久久免费视频了| aaa国产一区| 免费观看在线色综合| 国产精品久久久久婷婷二区次| 欧美日韩在线播放三区四区| 国产精品影视在线观看| 亚洲黄色小视频| 久久欧美中文字幕| 欧美亚洲高清一区| 国产一区欧美二区| 夜夜揉揉日日人人青青一国产精品| 欧美成人欧美edvon| 色老综合老女人久久久| 国产真实乱子伦精品视频| 一区二区三区四区视频精品免费 | 欧美国产日韩a欧美在线观看| 欧美自拍偷拍午夜视频| 国产91富婆露脸刺激对白| 亚洲成av人片一区二区梦乃| 国产精品第一页第二页第三页 | 精品国偷自产国产一区| 91久久线看在观草草青青| 国产一区二区不卡在线| 日韩成人午夜精品| 亚洲综合丁香婷婷六月香| 国产午夜精品一区二区三区嫩草| 欧美狂野另类xxxxoooo| 91蝌蚪porny九色| 国产精品1区二区.| 蜜桃视频一区二区| 亚洲r级在线视频| 一区二区激情小说| 亚洲欧美一区二区三区极速播放 | 色欲综合视频天天天| 国产精品18久久久久久久网站| 青草国产精品久久久久久| 一区二区三区免费在线观看| 国产精品久久久久久久久晋中| 精品欧美黑人一区二区三区| 欧美群妇大交群的观看方式| 欧美午夜一区二区三区免费大片| 91亚洲午夜精品久久久久久| 成人在线视频一区| 国产成人综合亚洲91猫咪| 精品在线一区二区三区| 蜜乳av一区二区| 男男视频亚洲欧美| 日韩电影免费在线看| 亚洲一二三区在线观看| 亚洲在线一区二区三区| 一区二区三区免费观看| 一区二区三区欧美| 亚洲福利一二三区| 日韩国产一区二| 日韩国产欧美三级| 日本在线播放一区二区三区| 亚洲超丰满肉感bbw| 五月天中文字幕一区二区| 亚洲成人激情社区| 国产一区二区三区四| 激情文学综合插| 国产传媒一区在线| 成人av综合在线| 一本大道av伊人久久综合| 在线精品视频免费播放| 欧美中文字幕不卡| 欧美一二三区在线| 26uuu亚洲综合色| 国产精品不卡在线| 一区二区三区日本| 奇米四色…亚洲| 国产精品一级片在线观看| 粉嫩一区二区三区在线看| k8久久久一区二区三区| 欧美午夜精品一区二区蜜桃| 欧美精品第1页| 久久久久久久久久久久久夜| 中文字幕一区av| 日韩主播视频在线| 高清不卡在线观看av| 色综合色综合色综合| 3d动漫精品啪啪1区2区免费| xnxx国产精品| 亚洲免费av观看| 麻豆精品蜜桃视频网站| 不卡一区二区在线| 欧美日韩精品一区二区天天拍小说 | 欧美日韩午夜在线视频| 欧美成人三级在线| 亚洲日本一区二区三区| 蜜臀av一级做a爰片久久| 风间由美性色一区二区三区| 欧美视频在线一区| 国产精品丝袜在线| 婷婷丁香久久五月婷婷| 懂色av中文一区二区三区| 欧美熟乱第一页| 亚洲sss视频在线视频| 午夜视频一区在线观看| 99热国产精品| 欧美久久久久久久久中文字幕| 国产亚洲欧美一级| 午夜亚洲福利老司机| 处破女av一区二区| 3atv一区二区三区| 亚洲色图制服丝袜| 国产精品自拍在线| 欧美丰满少妇xxxxx高潮对白| 国产午夜精品在线观看| 日产欧产美韩系列久久99| 91麻豆国产福利在线观看| 精品国免费一区二区三区| 亚洲综合色视频| av一区二区三区四区| 久久免费精品国产久精品久久久久| 亚洲午夜在线视频| 99re这里只有精品视频首页| 久久久久久久电影| 久久se精品一区二区| 5858s免费视频成人| 亚洲男人的天堂在线aⅴ视频 | 成人黄色在线看| 精品国产凹凸成av人网站| 亚洲国产另类av| 日本黄色一区二区| 国产精品三级av| 国产麻豆精品视频| 日韩欧美国产一二三区| 亚洲gay无套男同| 欧美日韩在线观看一区二区 | 午夜国产精品一区| 91久久精品一区二区| 中文字幕中文字幕在线一区| 福利一区在线观看| 国产色一区二区| 国产一区二区精品久久99| 日韩欧美综合一区| 喷白浆一区二区| 欧美一级日韩不卡播放免费| 亚洲h动漫在线| 欧美一区二区三区视频在线观看| 性久久久久久久| 欧美精品一级二级| 日日摸夜夜添夜夜添精品视频| 777午夜精品免费视频| 五月天丁香久久| 日韩免费观看高清完整版在线观看| 日韩精品乱码免费| 日韩亚洲欧美在线| 国产真实乱子伦精品视频| 久久久久国产免费免费| 国产凹凸在线观看一区二区| 国产精品麻豆99久久久久久| 91香蕉视频mp4| 亚洲国产成人高清精品| 精品婷婷伊人一区三区三| 亚洲va欧美va国产va天堂影院| 欧美精品18+| 国内精品伊人久久久久av一坑| 久久久久久久久久电影| jiyouzz国产精品久久| 亚洲自拍偷拍av| 91麻豆精品国产自产在线| 韩国在线一区二区| 国产精品午夜电影| 欧洲一区在线观看| 免费av网站大全久久| 国产日韩欧美综合一区| 91理论电影在线观看| 亚洲欧美日韩综合aⅴ视频| 欧美日韩一区二区三区视频 | 欧美激情一区二区三区不卡| 91免费小视频| 日韩高清在线一区| 久久精品人人做| 欧美午夜精品理论片a级按摩|