亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
一区二区三区日韩欧美| 欧美日韩一二区| 轻轻草成人在线| 亚洲综合成人在线| 亚洲免费观看高清完整版在线观看 | 亚洲欧洲综合另类| 欧美国产欧美综合| 国产农村妇女精品| 国产精品久久久久久福利一牛影视| 久久精品一区二区三区不卡牛牛 | 亚洲一二三四区不卡| 伊人开心综合网| 亚洲电影视频在线| 日韩不卡免费视频| 激情偷乱视频一区二区三区| 国产精品伊人色| 国产精品正在播放| 亚洲国产一区在线观看| 久久久九九九九| 亚洲三级视频在线观看| 亚洲国产精品久久艾草纯爱| 免费人成网站在线观看欧美高清| 免费成人你懂的| 国产成人亚洲精品狼色在线| 色综合久久88色综合天天免费| 欧美亚洲动漫精品| 精品国免费一区二区三区| 久久久777精品电影网影网| √…a在线天堂一区| 夜夜爽夜夜爽精品视频| 美女视频黄免费的久久 | 日产国产欧美视频一区精品| 久久99精品国产91久久来源| 不卡影院免费观看| 欧美美女视频在线观看| 久久久蜜桃精品| 亚洲免费观看高清在线观看| 美女视频一区在线观看| 一本色道久久综合亚洲91| 欧美老肥妇做.爰bbww视频| 久久精子c满五个校花| 亚洲精品伦理在线| 国产精品1区二区.| 欧美丝袜丝nylons| 国产精品视频一区二区三区不卡| 午夜免费久久看| 国产成人亚洲综合a∨婷婷图片| 欧美日韩黄视频| 国产精品久久久99| 看电视剧不卡顿的网站| 色视频成人在线观看免| www国产成人| 天堂成人免费av电影一区| 丁香啪啪综合成人亚洲小说 | 久久黄色级2电影| 色综合久久66| 国产视频一区不卡| 久久精品国产一区二区| 精品视频色一区| 综合在线观看色| 国产suv一区二区三区88区| 欧美一区二区三区四区视频| 一区二区三区日韩欧美| 一本到一区二区三区| 国产区在线观看成人精品| ...xxx性欧美| 在线成人免费视频| 亚洲欧美激情在线| 成人美女在线观看| 国产校园另类小说区| 麻豆精品新av中文字幕| 5566中文字幕一区二区电影| 亚洲影院免费观看| 色狠狠av一区二区三区| 中文字幕一区二区三| 成人av在线看| 国产精品久久久久久久久免费丝袜| 国产乱码精品一品二品| 精品久久久久av影院| 精彩视频一区二区| 欧美精品一区二区在线播放| 国产在线精品视频| 国产亚洲污的网站| 不卡视频一二三| 中文字幕一区二区视频| 91免费在线视频观看| 一区二区成人在线| 在线播放91灌醉迷j高跟美女 | 亚洲欧洲日韩在线| 不卡的电影网站| 亚洲免费观看高清完整版在线观看 | 不卡一区在线观看| 亚洲欧洲www| 一本久久综合亚洲鲁鲁五月天 | 宅男噜噜噜66一区二区66| 日韩av电影免费观看高清完整版在线观看| 欧美视频一区二| 麻豆免费看一区二区三区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲午夜私人影院| 欧美一区二区三区免费大片| 国产乱码精品1区2区3区| 中文字幕亚洲区| 欧美日韩一区二区在线观看 | 国产女同性恋一区二区| 97久久精品人人做人人爽 | 国产亚洲美州欧州综合国| 国产精品一卡二卡在线观看| 日韩久久一区二区| 51精品久久久久久久蜜臀| 国产不卡视频在线观看| 亚洲一区二区三区爽爽爽爽爽 | 亚洲国产日韩在线一区模特 | 97精品国产露脸对白| 首页国产欧美久久| 国产无人区一区二区三区| 色8久久人人97超碰香蕉987| 老汉av免费一区二区三区| 亚洲日本韩国一区| 欧美精品一区视频| 欧美日韩亚洲不卡| 国产馆精品极品| 午夜欧美在线一二页| 中文字幕亚洲区| 久久嫩草精品久久久久| 91国产福利在线| 成人综合在线观看| 男女激情视频一区| 亚洲综合av网| 日韩毛片高清在线播放| 久久综合精品国产一区二区三区 | 午夜精品一区二区三区免费视频| 欧美国产成人精品| 精品日韩欧美在线| 欧美三级视频在线观看| 成人午夜精品在线| 国产麻豆视频精品| 免费观看30秒视频久久| 一区二区三区91| 国产精品午夜久久| xvideos.蜜桃一区二区| 91精品国产综合久久蜜臀| 色综合视频在线观看| 成人高清伦理免费影院在线观看| 久久99精品久久久久| 久久精品国产澳门| 日韩电影免费一区| 夜夜揉揉日日人人青青一国产精品| 国产精品国产自产拍在线| 国产欧美日本一区视频| 久久久久久久久久看片| 欧美精品一区二区三区在线| 日韩美女一区二区三区| 欧美mv日韩mv国产| 欧美刺激午夜性久久久久久久| 91精品国产一区二区| 91精品国产综合久久久久久漫画| 欧美网站大全在线观看| 欧美亚洲国产一区在线观看网站| 91久久精品日日躁夜夜躁欧美| 91丨porny丨户外露出| 色综合久久中文综合久久97| 在线视频国内自拍亚洲视频| 色噜噜狠狠色综合中国| 欧美这里有精品| 欧美精品1区2区3区| 精品国偷自产国产一区| 久久精品免视看| 亚洲欧洲制服丝袜| 日韩二区三区在线观看| 九色porny丨国产精品| 高清国产一区二区| 在线观看国产精品网站| 91精品久久久久久蜜臀| 国产三级精品三级| 日韩伦理av电影| 免费观看一级特黄欧美大片| 国产久卡久卡久卡久卡视频精品| 成人国产精品免费观看动漫| 欧美性大战xxxxx久久久| 日韩亚洲欧美综合| 国产欧美精品一区二区三区四区| **欧美大码日韩| 日韩高清电影一区| youjizz国产精品| 51精品久久久久久久蜜臀| 国产免费成人在线视频| 一区二区三区小说| 另类调教123区| 99精品视频在线播放观看| 欧美日本韩国一区| 国产视频911| 天天色 色综合| 懂色av一区二区三区免费看| 欧美视频在线播放| 国产欧美一区二区精品性色| 亚洲成人动漫一区| 国产91在线观看丝袜| 欧美一区欧美二区| 亚洲激情五月婷婷|