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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? genomeimage.java

?? 實(shí)現(xiàn)了基因組的顯示功能
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
package org.csbl.genome.service;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;


import javax.imageio.ImageIO;

import org.csbl.genome.model.Feature;
import org.csbl.genome.model.Location;
import org.csbl.genome.model.Range;
import org.csbl.genome.model.Qualifier;
import org.csbl.genome.model.Pathway;
import org.csbl.genome.model.PathwayNode;
import org.csbl.genome.model.Annotation;

public class GenomeImage {
	
	String fileName;
	
	int maxLength = 750;
	int intervalLength = 50; 
		
	// calculated
	double ratio=1.0;
	double operonrate = 0.5;//for operon value
	public List <Feature> fillFeatures(List <Feature> features)
	{
		List <Feature> ff = new ArrayList <Feature>();
		List <Qualifier> qs1 = new ArrayList <Qualifier>();
		List <Qualifier> qs2 = new ArrayList <Qualifier>();
		List <Qualifier> qs3 = new ArrayList <Qualifier>();
		List <Qualifier> qs4 = new ArrayList <Qualifier>();
		List <Qualifier> qs5 = new ArrayList <Qualifier>();
		if (features!= null) {  // annotated genome
			Iterator itr = features.iterator();
		
			Qualifier q1 = new Qualifier();
			q1.setName("ofsValue");
			q1.setValue("0.8");
			qs1.add(q1);
			Qualifier q2 = new Qualifier();
			q2.setName("ofsValue");
			q2.setValue("0.8");
			qs2.add(q2);
			Qualifier q3 = new Qualifier();
			q3.setName("ofsValue");
			q3.setValue("0.3");
			qs3.add(q3);
			Qualifier q4 = new Qualifier();
			q4.setName("ofsValue");
			q4.setValue("0.8");
			qs4.add(q4);
			Qualifier q5 = new Qualifier();
			q5.setName("ofsValue");
			q5.setValue("0");
			qs5.add(q5);
			//itr.hasNext();
			Feature feature1 = (Feature)itr.next();
			feature1.setQualifiers(qs1);
			Feature feature2 = (Feature)itr.next();
			feature2.setQualifiers(qs2);
			Feature feature3 = (Feature)itr.next();
			feature3.setQualifiers(qs3);
			Feature feature4 = (Feature)itr.next();
			feature4.setQualifiers(qs4);
			Feature feature5 = (Feature)itr.next();
			feature5.setQualifiers(qs5);	
		}
		return features;
	}
	public Pathway fillPathway(String pathwayname,String organismname)
	{
		Pathway usePathway = new Pathway();
		usePathway.setId(1l);
		usePathway.setName(pathwayname);
		usePathway.setOrganismName(organismname);
		List <PathwayNode> tempnodes = new ArrayList<PathwayNode>();
		for(int i=1;i<=7;i++)
		{
			PathwayNode tempNode = new PathwayNode();
			tempNode.setId((long)i);
			tempNode.setGeneName("geneName"+Integer.toString(i));
			tempnodes.add(tempNode);
		}
		usePathway.setNodes(tempnodes);
		return usePathway;
	}
	public List <Feature> fillFeatures2(List <Feature> features)
	{
		List <Feature> ff = new ArrayList <Feature>();
		List <Qualifier> qs1 = new ArrayList <Qualifier>();
		List <Qualifier> qs2 = new ArrayList <Qualifier>();
		List <Qualifier> qs3 = new ArrayList <Qualifier>();
		List <Qualifier> qs4 = new ArrayList <Qualifier>();
		List <Qualifier> qs5 = new ArrayList <Qualifier>();
		String wuzhongname = "ecoli";
		String pathwayname = "daixie";
		if (features!= null) {  // annotated genome
			Iterator itr = features.iterator();
			Qualifier q1 = new Qualifier();
			q1.setName("ofsValue");
			q1.setValue("0.8");
			qs1.add(q1);
			Qualifier qq1 = new Qualifier();
			qq1.setName("pmap");
			qq1.setValue(wuzhongname+":"+pathwayname+":"+"geneName1");
			qs1.add(qq1);
			Qualifier q2 = new Qualifier();
			q2.setName("ofsValue");
			q2.setValue("0.8");
			qs2.add(q2);
			Qualifier qq2 = new Qualifier();
			qq2.setName("pmap");
			qq2.setValue(wuzhongname+":"+pathwayname+":"+"geneName4");
			qs2.add(qq2);
			Qualifier q3 = new Qualifier();
			q3.setName("ofsValue");
			q3.setValue("0.3");
			qs3.add(q3);
			Qualifier qq3 = new Qualifier();
			qq3.setName("pmap");
			qq3.setValue(wuzhongname+":"+pathwayname+":"+"geneName3");
			qs3.add(qq3);
			Qualifier q4 = new Qualifier();
			q4.setName("ofsValue");
			q4.setValue("0.8");
			qs4.add(q4);
			Qualifier q5 = new Qualifier();
			q5.setName("ofsValue");
			q5.setValue("0");
			qs5.add(q5);
			Qualifier qq5 = new Qualifier();
			qq5.setName("pmap");
			qq5.setValue(wuzhongname+":"+pathwayname+":"+"geneName2");
			qs5.add(qq5);
			//itr.hasNext();
			Feature feature1 = (Feature)itr.next();
			feature1.setQualifiers(qs1);
			Feature feature2 = (Feature)itr.next();
			feature2.setQualifiers(qs2);
			Feature feature3 = (Feature)itr.next();
			feature3.setQualifiers(qs3);
			Feature feature4 = (Feature)itr.next();
			feature4.setQualifiers(qs4);
			Feature feature5 = (Feature)itr.next();
			feature5.setQualifiers(qs5);	
		}
		return features;
	}
	public double drawGenome (int positionStart, int positionEnd, List <Feature> features,Pathway pathway, String subString ) {
		//features = fillFeatures2(features);
		//int numberFeatures = 0;
		//System.out.print(positionStart);
		//System.out.print(";");
		//System.out.print(positionEnd);
		//System.out.print(";");
		int length = positionEnd - positionStart;
		System.out.print(positionStart);
		System.out.print(";");
		System.out.print(positionEnd);
		if (length <= 0) {
			throw new RuntimeException ("invalid parameters");
		}
		ratio =  new Double(maxLength).doubleValue() / new Double(length).doubleValue();
		
		if (ratio > 1) {
			maxLength = length;
			ratio = 1;
			int height = 180;   // no frames - for frames set it to 220
			
			BufferedImage image =
		        new BufferedImage(maxLength + 20, height, BufferedImage.TYPE_INT_RGB);
			
			Graphics2D  g2 = (Graphics2D)image.getGraphics();
			g2.setBackground(Color.WHITE);
			g2.clearRect(0,0,maxLength + 20, height);
			g2.setColor(Color.BLACK);		
			g2.drawLine(20, 22, maxLength, 22);
			putScales (g2, positionStart);
			int lengthofstring = subString.length();
			int i=0;
			for(i=0;i<(int)(lengthofstring/100-1);i++)
			{
			   g2.drawString(subString.substring(i*100,(i+1)*100), 20, 60+20*i);
			}
			g2.drawString(subString.substring((i+1)*100,lengthofstring), 20, 60+20*(i+1));
			File f = new File(fileName);
			try {
				ImageIO.write(image, "jpg", f);
			} catch (Exception e) {
				System.out.println ("filename" + fileName);
				e.printStackTrace();
			}
		}
		else
		{
		int height = 180;   // no frames - for frames set it to 220
		
		BufferedImage image =
	        new BufferedImage(maxLength + 20, height, BufferedImage.TYPE_INT_RGB);
		
		Graphics2D  g2 = (Graphics2D)image.getGraphics();
		g2.setBackground(Color.WHITE);
		g2.clearRect(0,0,maxLength + 20, height);
		g2.setColor(Color.BLACK);		
		g2.drawLine(20, 22, maxLength, 22); // no frames
		
		// to show genes on frames, put the following and comment out the above line
	/*	Font fcb24 = new Font("Courier",Font.BOLD,10);
	    g2.setFont(fcb24);
		g2.drawString("+1",2,55);
		g2.drawString("+2",2,85);
		g2.drawString("+3",2,115);
		g2.drawString("-1",2,145);
		g2.drawString("-2",2,175);
		g2.drawString("-3",2,205);
				
		g2.drawLine(20, 22, maxLength, 22);
		g2.drawLine(20, 55, maxLength, 55);
		g2.drawLine(20, 85, maxLength, 85);
		g2.drawLine(20, 115, maxLength, 115);
		g2.drawLine(20, 145, maxLength, 145);
		g2.drawLine(20, 175, maxLength, 175);
		g2.drawLine(20, 205, maxLength, 205);*/
		
		putScales (g2, positionStart);
//		g2.setColor(Color.BLUE);
//		g2.drawRect((int)(ratio*280), 35, (int)(2020*ratio), 20);
		
		//Pathway pathway = fillPathway("daixie","ecoli");
		if(pathway != null)
		{
			if(!pathway.getNodes().isEmpty())
			{
				drawPathway(g2,pathway,20,maxLength);
			}
		}
		if (features!= null) 
		{  // annotated genome
			Iterator itr = features.iterator();
			long sstart = 0;
			long send = 0;
			boolean hasOperon = false;
			String pmapvalue = "";
			while (itr.hasNext()) 
			{
				Feature feature = (Feature)itr.next();
				//if((feature.getLocation().getRangeList().get(0).getStart()>positionStart)&&(feature.getLocation().getRangeList().get(0).getEnd()<positionEnd))
				
					int x1 = drawFeature (feature, g2, positionStart, positionEnd);	
					//System.out.print(x1);
					//System.out.print(";");
					Iterator itrr = feature.getQualifiers().iterator();
					while(itrr.hasNext())
					{
						Qualifier q = (Qualifier)itrr.next();
						if (q.getName().equals("ofsValue"))
						{						
							if(!hasOperon)
							{
								if(Double.parseDouble(q.getValue())>0.5d)
								{								
									sstart = feature.getLocation().getRangeList().get(0).getStart();
									hasOperon = true;
								}
							}
							else
							{
								if(Double.parseDouble(q.getValue())>0.5d)
								{
									send=feature.getLocation().getRangeList().get(0).getEnd();
								}
								else
								{

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女免费在线| 欧美性视频一区二区三区| 青青草国产成人av片免费| 欧美视频日韩视频在线观看| 成人高清免费观看| 国产精品系列在线观看| 激情久久五月天| 激情欧美一区二区| 国产一区二区三区日韩| 国产一区二区三区在线观看免费| 蜜桃传媒麻豆第一区在线观看| 香蕉成人伊视频在线观看| 亚洲一区二区av在线| 亚洲成人一区在线| 天天射综合影视| 免费一级片91| 精品在线亚洲视频| 国产一区二区成人久久免费影院 | 久久亚洲精品小早川怜子| 欧美一区在线视频| 日韩欧美久久一区| 久久久综合精品| 中文字幕一区视频| 亚洲综合精品自拍| 日本vs亚洲vs韩国一区三区| 久久精品国产亚洲a| 国产一区二区精品久久91| 成人精品免费看| 91极品视觉盛宴| 欧美丰满高潮xxxx喷水动漫| 精品国产一区二区三区忘忧草| 久久一夜天堂av一区二区三区| 亚洲国产精品黑人久久久| 亚洲人成网站色在线观看| 亚洲第一会所有码转帖| 捆绑调教美女网站视频一区| 国产aⅴ综合色| 欧美在线观看18| 欧美一二三四在线| 国产精品美日韩| 亚洲国产美女搞黄色| 奇米色一区二区| 粉嫩av一区二区三区| 欧美视频三区在线播放| 久久久高清一区二区三区| 亚洲日韩欧美一区二区在线| 日韩影视精彩在线| 成人亚洲精品久久久久软件| 欧洲精品在线观看| 精品日韩99亚洲| 亚洲男同性恋视频| 狠狠色2019综合网| 色欧美日韩亚洲| 精品国产伦一区二区三区观看体验| 国产精品视频看| 欧美bbbbb| 91丨九色丨尤物| 精品少妇一区二区| 亚洲综合激情网| 国产99久久久国产精品免费看| 欧美午夜理伦三级在线观看| 国产日本欧洲亚洲| 日韩高清在线观看| 99热99精品| 久久综合成人精品亚洲另类欧美| 一级中文字幕一区二区| 国产又黄又大久久| 欧美日韩不卡一区| 中文字幕色av一区二区三区| 美国十次综合导航| 在线观看视频欧美| 欧美国产精品劲爆| 精品综合免费视频观看| 欧美在线观看视频一区二区| 国产精品看片你懂得| 黄色日韩三级电影| 欧美精品视频www在线观看| 国产精品久久久久久妇女6080| 久久er99热精品一区二区| 欧美视频在线播放| 中文字幕在线观看不卡视频| 韩国成人精品a∨在线观看| 欧美精品在线视频| 亚洲精品一卡二卡| eeuss鲁片一区二区三区在线观看| 日韩欧美一区中文| 日本在线不卡一区| 欧美三级韩国三级日本三斤 | 日本成人中文字幕在线视频| 色综合久久天天| 国产精品免费人成网站| 韩日精品视频一区| 日韩免费高清电影| 日韩高清国产一区在线| 欧美日韩成人综合天天影院| 亚洲成av人片一区二区三区| 在线亚洲一区二区| 亚洲欧美日韩中文字幕一区二区三区 | 日韩视频123| 日韩电影在线一区| 7777精品伊人久久久大香线蕉的| 一区二区三区欧美在线观看| 色哟哟精品一区| 亚洲三级电影全部在线观看高清| 成人激情小说网站| 国产精品久久夜| 成人永久免费视频| 中文字幕精品一区二区三区精品| 国产精品一区2区| 久久精品亚洲一区二区三区浴池| 精品亚洲国产成人av制服丝袜| 日韩三区在线观看| 久久er精品视频| 久久精品一二三| 成人精品视频一区二区三区尤物| 久久精品男人天堂av| 国产91在线观看| 一区在线观看视频| 色综合久久久久综合| 一区二区视频在线看| 欧美系列在线观看| 琪琪一区二区三区| 久久久亚洲精品石原莉奈| 国产精品一区二区不卡| 1024成人网| 欧美少妇xxx| 久久精品99久久久| 久久久久久久久久看片| 成人激情免费视频| 一区二区三区欧美| 欧美肥妇free| 国产精品综合网| 专区另类欧美日韩| 911国产精品| 国产尤物一区二区在线| 亚洲特黄一级片| 欧美日韩一区成人| 国产在线观看一区二区 | 国产成人免费在线| 亚洲欧美日韩国产综合| 欧美日韩一区小说| 激情欧美一区二区| 亚洲精品视频免费看| 欧美一级理论性理论a| 国产suv精品一区二区883| 亚洲电影在线免费观看| 26uuu欧美日本| 91视频免费看| 美脚の诱脚舐め脚责91| 中文一区二区在线观看| 91激情五月电影| 看电视剧不卡顿的网站| 中文字幕不卡的av| 欧美高清视频不卡网| 黑人精品欧美一区二区蜜桃| 一区二区视频在线看| 久久久国产综合精品女国产盗摄| 在线看一区二区| 国产精品99久久久久久有的能看| 亚洲乱码中文字幕| 26uuu国产一区二区三区| 在线欧美日韩国产| 国产乱码精品一品二品| 一区二区三区欧美在线观看| 欧美激情一区三区| 在线电影国产精品| 99天天综合性| 久久成人免费日本黄色| 亚洲精品一二三四区| 久久精品一区二区三区不卡牛牛| 欧美性生交片4| 99久久婷婷国产综合精品电影| 日韩和欧美一区二区三区| 亚洲日本韩国一区| 久久夜色精品国产欧美乱极品| 精品视频一区三区九区| av午夜一区麻豆| 韩国成人福利片在线播放| 亚洲电影一级黄| 中文字幕亚洲成人| 欧美韩国日本一区| 欧美精品一区二区三区很污很色的 | 久久久久国产精品厨房| 欧美婷婷六月丁香综合色| 成人免费精品视频| 激情综合色丁香一区二区| 亚洲综合成人在线| 亚洲欧洲成人精品av97| 国产亚洲综合av| 精品久久久久久久久久久院品网| 欧美日韩免费观看一区三区| 色综合久久中文字幕| jlzzjlzz亚洲日本少妇| 国产精品18久久久久久久网站| 秋霞成人午夜伦在线观看| 精品一区二区免费视频| 午夜久久久久久久久| 亚洲与欧洲av电影| 一区二区在线观看视频| 亚洲欧美一区二区三区国产精品|