comparison NGSrich_0.5.5/src/datastructures/ReducedReadLine.java @ 0:89ad0a9cca52 default tip

Uploaded
author pfrommolt
date Mon, 21 Nov 2011 08:12:19 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:89ad0a9cca52
1 package datastructures;
2
3 import java.util.Scanner;
4 import exceptions.ChromosomeFormatException;
5 import exceptions.ChromosomeNotFoundException;
6 import exceptions.RangeFormatException;
7 import exceptions.RangeLimitNotFoundException;
8
9 /**
10 * Represents a read Line from the read alignment file.
11 *
12 * @author Ali Abdallah
13 * @version 22.07.2011
14 * @since Java 1.6
15 */
16 public class ReducedReadLine implements Line{
17
18 String line;
19 String rName;
20 String chrom;
21 int start, end;
22
23 public ReducedReadLine(String line) throws ChromosomeFormatException,
24 ChromosomeNotFoundException,
25 RangeFormatException,
26 RangeLimitNotFoundException{
27 this.line = line;
28 Scanner s = new Scanner(line);
29 if(s.hasNext())
30 rName = s.next();
31 if(s.hasNext()){
32 chrom = s.next();
33 if(!(chrom.toLowerCase().startsWith("chr") || chrom.equals("*")))
34 throw new ChromosomeFormatException(chrom);
35 }
36 else
37 throw new ChromosomeNotFoundException();
38
39 if(s.hasNextInt()){
40 start = s.nextInt();
41 if(start < 0){
42 throw new RangeFormatException("Start position must be a positive integer.");
43 }
44 }
45 else if(!s.hasNext())
46 throw new RangeLimitNotFoundException("No range start found!");
47 else
48 throw new RangeFormatException("Found: "+start+". Start position ist not an integer. " +
49 "It must be a positive integer.");
50
51 if(s.hasNextInt()){
52 end = s.nextInt();
53 if(end < 0){
54 throw new RangeFormatException("End position must be a positive integer.");
55 }
56 }
57 else if(!s.hasNext())
58 throw new RangeLimitNotFoundException("No range end found!");
59 else
60 throw new RangeFormatException("Found: "+end+". End position ist not an integer. " +
61 "It must be a positive integer.");
62 }
63
64 public String chrom(){
65 return chrom;
66 }
67
68 public int start(){
69 return start;
70 }
71
72 public int end(){
73 return end;
74 }
75
76 public String toString(){
77 return line;
78 }
79
80 public boolean isForwardRead(){
81 return start <= end;
82 }
83
84 public String name() {
85 // TODO Auto-generated method stub
86 return rName;
87 }
88
89 }