Allow header fields to come in any order...

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3269 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
chartl 2010-04-29 18:33:10 +00:00
parent 4617abf1ff
commit 82818a417b
1 changed files with 12 additions and 4 deletions

View File

@ -29,6 +29,8 @@ public class PlinkRod extends BasicReferenceOrderedDatum implements Iterator<Pli
private List<String> sampleNames; private List<String> sampleNames;
private String[] fileHeader;
public enum PlinkFileType { public enum PlinkFileType {
STANDARD_PED, RAW_PED, BINARY_PED STANDARD_PED, RAW_PED, BINARY_PED
} }
@ -201,9 +203,15 @@ public class PlinkRod extends BasicReferenceOrderedDatum implements Iterator<Pli
throw new StingException("Plink file is likely of .raw or recoded format. Please use an uncoded .ped file."); throw new StingException("Plink file is likely of .raw or recoded format. Please use an uncoded .ped file.");
StringTokenizer st = new StringTokenizer(plinkLine, "\t"); StringTokenizer st = new StringTokenizer(plinkLine, "\t");
st.nextToken(); // family ID int offset = 0;
sampleNames.add(st.nextToken()); String sample = st.nextToken();
for (int i = 2; i < headerFieldCount; i++) while ( ! fileHeader[offset].equals("Individual ID") && ! fileHeader[offset].equals("#Individual ID") ) {
sample = st.nextToken(); // kill nonstandard tokens
offset ++;
}
sampleNames.add(sample);
for (int i = offset+1; i < headerFieldCount ; i++)
st.nextToken(); st.nextToken();
int snpNumber = 0; int snpNumber = 0;
@ -221,7 +229,7 @@ public class PlinkRod extends BasicReferenceOrderedDatum implements Iterator<Pli
plinkFileType = PlinkFileType.STANDARD_PED; plinkFileType = PlinkFileType.STANDARD_PED;
String[] headerFields = header.split("\t"); String[] headerFields = header.split("\t");
fileHeader = headerFields;
int skippedFields = 0; int skippedFields = 0;
for ( String field : headerFields ) { for ( String field : headerFields ) {
if ( headerEntries.contains(field) ) if ( headerEntries.contains(field) )