Skip to content

Commit 87c79ea

Browse files
Merge branch 'ypriverol-master'
2 parents ec571a3 + dbe7017 commit 87c79ea

38 files changed

Lines changed: 369 additions & 18 deletions

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
language: csharp
2+
solution: ThermoRawFileParser.sln
3+
4+

App.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<configuration>
3+
<runtime>
4+
<loadFromRemoteSources enabled="true" />
5+
</runtime>
6+
</configuration>

MainClass.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public static void Main(string[] args)
1515
{
1616
string rawFilePath = null;
1717
string outputDirectory = null;
18+
string outputFile = null;
1819
string outputFormatString = null;
1920
var outputFormat = OutputFormat.NONE;
2021
var gzip = false;
@@ -44,6 +45,10 @@ public static void Main(string[] args)
4445
"o=|output=", "The output directory.",
4546
v => outputDirectory = v
4647
},
48+
{
49+
"b=|output_file", "The output file to export spectra",
50+
v => outputFile = v
51+
},
4752
{
4853
"f=|format=",
4954
"The output format for the spectra (0 for MGF, 1 for mzMl, 2 for indexed mzML, 3 for Parquet)",
@@ -196,7 +201,7 @@ public static void Main(string[] args)
196201
.RaiseConfigurationChanged(EventArgs.Empty);
197202
}
198203

199-
var parseInput = new ParseInput(rawFilePath, outputDirectory, outputFormat, gzip, outputMetadataFormat,
204+
var parseInput = new ParseInput(rawFilePath, outputDirectory, outputFile, outputFormat, gzip, outputMetadataFormat,
200205
s3url, s3AccessKeyId, s3SecretAccessKey, bucketName, ignoreInstrumentErrors, noPeakPicking);
201206
RawFileParser.Parse(parseInput);
202207
}

ParseInput.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.IO;
2+
using System.Resources;
23
using ThermoRawFileParser.Writer;
34

45
namespace ThermoRawFileParser
@@ -20,6 +21,11 @@ public class ParseInput
2021
/// </summary>
2122
public OutputFormat OutputFormat { get; }
2223

24+
/// <summary>
25+
/// The output file
26+
/// </summary>>
27+
public string OutputFile { get; }
28+
2329
/// <summary>
2430
/// Gzip the output file.
2531
/// </summary>
@@ -54,7 +60,7 @@ public class ParseInput
5460

5561
private string bucketName;
5662

57-
public ParseInput(string rawFilePath, string outputDirectory, OutputFormat outputFormat, bool gzip,
63+
public ParseInput(string rawFilePath, string outputDirectory, string outputFile, OutputFormat outputFormat, bool gzip,
5864
MetadataFormat outputMetadata, string s3url, string s3AccessKeyId,
5965
string s3SecretAccessKey, string bucketName,
6066
bool ignoreInstrumentErrors, bool noPeakPicking
@@ -65,6 +71,7 @@ public ParseInput(string rawFilePath, string outputDirectory, OutputFormat outpu
6571
RawFileName = splittedPath[splittedPath.Length - 1];
6672
RawFileNameWithoutExtension = Path.GetFileNameWithoutExtension(RawFileName);
6773
OutputDirectory = outputDirectory;
74+
OutputFile = outputFile;
6875
OutputFormat = outputFormat;
6976
Gzip = gzip;
7077
OutputMetadata = outputMetadata;
@@ -77,6 +84,10 @@ public ParseInput(string rawFilePath, string outputDirectory, OutputFormat outpu
7784

7885
if (S3url != null && S3AccessKeyId != null && S3SecretAccessKey != null && bucketName != null)
7986
InitializeS3Bucket();
87+
88+
if (OutputDirectory == null && OutputFile != null)
89+
OutputDirectory = Path.GetDirectoryName(OutputFile);
90+
8091
}
8192

8293
private void InitializeS3Bucket()

RawFileParser.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ public static void Parse(ParseInput parseInput)
6464

6565
if (parseInput.OutputMetadata != MetadataFormat.NONE)
6666
{
67-
var metadataWriter = new MetadataWriter(parseInput.OutputDirectory,
68-
parseInput.RawFileNameWithoutExtension);
67+
var metadataWriter = new MetadataWriter(parseInput.OutputDirectory, parseInput.RawFileNameWithoutExtension);
6968
switch (parseInput.OutputMetadata)
7069
{
7170
case MetadataFormat.JSON:

ThermoRawFileParser.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@
141141
<Compile Include="Writer\SpectrumWriter.cs" />
142142
</ItemGroup>
143143
<ItemGroup>
144+
<None Include="App.config" />
144145
<None Include="packages.config" />
145146
</ItemGroup>
146147
<ItemGroup>

ThermoRawFileParserTest/WriterTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ public void TestMgf()
1919
var tempFilePath = Path.GetTempPath();
2020

2121
var testRawFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"small.RAW");
22-
var parseInput = new ParseInput(testRawFile, tempFilePath, OutputFormat.MGF, false, MetadataFormat.NONE,
23-
null, null, null, null, false);
22+
var parseInput = new ParseInput(testRawFile, tempFilePath, null, OutputFormat.MGF, false, MetadataFormat.NONE,
23+
null, null, null, null, false, false);
2424

2525
RawFileParser.Parse(parseInput);
2626

@@ -40,8 +40,8 @@ public void TestMzml()
4040
var tempFilePath = Path.GetTempPath();
4141

4242
var testRawFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"small.RAW");
43-
var parseInput = new ParseInput(testRawFile, tempFilePath, OutputFormat.MzML, false, MetadataFormat.NONE,
44-
null, null, null, null, false);
43+
var parseInput = new ParseInput(testRawFile, tempFilePath, null, OutputFormat.MzML, false, MetadataFormat.NONE,
44+
null, null, null, null, false, false);
4545

4646
RawFileParser.Parse(parseInput);
4747

@@ -66,9 +66,9 @@ public void TestIndexedMzML()
6666
Console.WriteLine(tempFilePath);
6767

6868
var testRawFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"small.RAW");
69-
var parseInput = new ParseInput(testRawFile, tempFilePath, OutputFormat.IndexMzML, false,
69+
var parseInput = new ParseInput(testRawFile, tempFilePath, null, OutputFormat.IndexMzML, false,
7070
MetadataFormat.NONE,
71-
null, null, null, null, false);
71+
null, null, null, null, false, false);
7272

7373
RawFileParser.Parse(parseInput);
7474

Writer/SpectrumWriter.cs

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,34 @@ protected SpectrumWriter(ParseInput parseInput)
3939
/// <param name="extension">The extension of the output file</param>
4040
protected void ConfigureWriter(string extension)
4141
{
42-
var fullExtension = ParseInput.Gzip ? extension + ".gzip" : extension;
43-
if (!ParseInput.Gzip || ParseInput.OutputFormat == OutputFormat.IndexMzML)
42+
if (ParseInput.OutputFile == null)
4443
{
45-
Writer = File.CreateText(ParseInput.OutputDirectory + "//" + ParseInput.RawFileNameWithoutExtension +
46-
extension);
44+
var fullExtension = ParseInput.Gzip ? extension + ".gzip" : extension;
45+
if (!ParseInput.Gzip || ParseInput.OutputFormat == OutputFormat.IndexMzML)
46+
{
47+
Writer = File.CreateText(ParseInput.OutputDirectory + "//" + ParseInput.RawFileNameWithoutExtension +
48+
extension);
49+
}
50+
else
51+
{
52+
var fileStream = File.Create(ParseInput.OutputDirectory + "//" + ParseInput.RawFileNameWithoutExtension + fullExtension);
53+
var compress = new GZipStream(fileStream, CompressionMode.Compress);
54+
Writer = new StreamWriter(compress);
55+
}
4756
}
4857
else
4958
{
50-
var fileStream = File.Create(ParseInput.OutputDirectory + "//" +
51-
ParseInput.RawFileNameWithoutExtension + fullExtension);
52-
var compress = new GZipStream(fileStream, CompressionMode.Compress);
53-
Writer = new StreamWriter(compress);
59+
if (!ParseInput.Gzip || ParseInput.OutputFormat == OutputFormat.IndexMzML)
60+
{
61+
Writer = File.CreateText(ParseInput.OutputFile);
62+
}
63+
else
64+
{
65+
var fileName = ParseInput.Gzip ? ParseInput.OutputFile + ".gzip" : ParseInput.OutputFile;
66+
var fileStream = File.Create(fileName);
67+
var compress = new GZipStream(fileStream, CompressionMode.Compress);
68+
Writer = new StreamWriter(compress);
69+
}
5470
}
5571
}
5672

9.27 KB
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)