Java 将PubMed GEO DataSets中series类型的检索结果转化为Excel
实际进行生信分析时,更需要的是series类型的数据,和Java 将PubMed GEO DataSets中dataset类型的检索结果转化为Excel中的方法一样,首先转成TXT,然后借助jxl包转为Excel。
源代码如下:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package ncbi;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
/**
*
* @author wgyklh
*/
public class Series {
/**
* @param args the command line arguments
* @throws java.lang.Exception
*/
public static void main(String[] args) throws Exception {
// TODO code application logic here
File in = new File("C:\\Users\\Lenovo\\Desktop\\series.txt");
File out = new File("C:\\Users\\Lenovo\\Desktop\\Series.xls");
WritableWorkbook wwb = Workbook.createWorkbook(out);
WritableSheet series = wwb.createSheet("Series", 0);
series.setColumnView(0, 5);
series.setColumnView(1, 40);
series.setColumnView(2, 40);
series.setColumnView(4, 20);
series.setColumnView(6, 20);
series.setColumnView(10, 12);
series.addCell(new Label(0, 0, "Number"));
series.addCell(new Label(1, 0, "Title"));
series.addCell(new Label(2, 0, "Introduction"));
series.addCell(new Label(3, 0, "Organism"));
series.addCell(new Label(4, 0, "Type"));
series.addCell(new Label(5, 0, "Dataset"));
series.addCell(new Label(6, 0, "Platform(s)"));
series.addCell(new Label(7, 0, "Sample"));
series.addCell(new Label(8, 0, "FTP download"));
series.addCell(new Label(9, 0, "SRA Run Selector"));
series.addCell(new Label(10, 0, "Accession"));
series.addCell(new Label(11, 0, "ID"));
series.addCell(new Label(12, 0, "Project"));
BufferedReader reader = null;
String tempString = null;
int number = 1;
int index0, index1, index2, index3, index4, index5, index6;
try {
reader = new BufferedReader(new FileReader(in));
for (int n = 1; n <= 347; n++) {
tempString = reader.readLine();
tempString = reader.readLine();
series.addCell(new Label(0, number, String.valueOf(number)));
series.addCell(new Label(1, number, tempString.substring(tempString.indexOf(".") + 2)));
tempString = reader.readLine();
series.addCell(new Label(2, number, tempString));
tempString = reader.readLine();
index0 = tempString.indexOf("Project:");
if(index0!=-1){
series.addCell(new Label(12, number, tempString.substring(10)));
tempString = reader.readLine();
}
else series.addCell(new Label(3, number, tempString.substring(10)));
tempString = reader.readLine();
series.addCell(new Label(4, number, tempString.substring(6)));
tempString = reader.readLine();
index1 = tempString.indexOf("Dataset");
index2 = tempString.indexOf(":");
index3 = tempString.indexOf("Sample");
index4 = tempString.indexOf("related");
series.addCell(new Label(5, number, "—"));
if (index1 != -1) {
series.addCell(new Label(5, number, tempString.substring(index1 + 9, index1 + 16).trim()));
}
if (tempString.substring(index3 - 4, index3 - 2).contains(" ")) {
series.addCell(new Label(7, number, tempString.substring(index3 - 3, index3 - 1).trim()));
series.addCell(new Label(6, number, tempString.substring(index2 + 2, index3 - 3).trim()));
} else {
series.addCell(new Label(7, number, tempString.substring(index3 - 5, index3 - 1).trim()));
series.addCell(new Label(6, number, tempString.substring(index2 + 2, index3 - 5).trim()));
}
if (index4 != -1) {
series.addCell(new Label(6, number, tempString.substring(0, index2 + 9).trim()));
}
tempString = reader.readLine();
series.addCell(new Label(8, number, tempString.substring(14)));
tempString = reader.readLine();
index5 = tempString.indexOf("SRA");
if (index5 != -1) {
series.addCell(new Label(9, number, tempString.substring(18)));
tempString = reader.readLine();
}
index6 = tempString.indexOf("ID");
series.addCell(new Label(10, number, tempString.substring(19, index6 - 1)));
series.addCell(new Label(11, number, tempString.substring(index6 + 4)));
number++;
}
reader.close();
wwb.write();
wwb.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
}
}
}
}
}