importerutils

package
v2.0.17-core Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 14, 2022 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Example (ConvertHousekeepingData)
data := [][]string{
	{"13", "14", "34", "3.1415926", "44"},
	{"13", "13.33", "999", "55", "N/A"},
}

result, err := convertHousekeepingData(
	[]string{"ONE", "TWO", "THREE", "FOUR"},
	2,
	data,
	[]protos.Experiment_MetaDataType{protos.Experiment_MT_INT, protos.Experiment_MT_FLOAT, protos.Experiment_MT_INT, protos.Experiment_MT_FLOAT, protos.Experiment_MT_STRING},
)

fmt.Printf("%v|%v|%v\n", err, result.Header, len(result.Data))

// Print in increasing PMC order, map ordering is non-deterministic
keys := []int{}
for k := range result.Data {
	keys = append(keys, int(k))
}
sort.Ints(keys)

for _, pmc := range keys {
	hks := result.Data[int32(pmc)]
	fmt.Printf("%v: %v\n", pmc, hks)
}
Output:
<nil>|[ONE TWO THREE FOUR]|2
34: [{ 13 0 MT_INT} { 0 14 MT_FLOAT} { 0 3.1415925 MT_FLOAT} {44 0 0 MT_STRING}]
999: [{ 13 0 MT_INT} { 0 13.33 MT_FLOAT} { 0 55 MT_FLOAT} {N/A 0 0 MT_STRING}]
Example (ParseBeamLocationHeaders)
cols, geom_corr, err := parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "PMC_777_MCC_i", "PMC_777_MCC_j", "PMC_3027_MCC_i", "PMC_3027_MCC_j"}, true, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

// With optional geom_corr
cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "geom_corr", "PMC_777_MCC_i", "PMC_777_MCC_j", "PMC_3027_MCC_i", "PMC_3027_MCC_j"}, true, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

// With optional geom_corr mixed amongst ijs (SHOULD FAIL)
cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "PMC_777_MCC_i", "PMC_777_MCC_j", "geom_corr", "PMC_3027_MCC_i", "PMC_3027_MCC_j"}, true, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

// With optional geom_corr and another mixed amongst ijs (SHOULD FAIL)
cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "PMC_777_MCC_i", "PMC_777_MCC_j", "geom_corr", "PMC_3027_MCC_i", "SCLK", "PMC_3027_MCC_j"}, true, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "PMC_777_MCC_i", "PMC_777_MCC_j", "PMC_3027_MCC_i", "PMC_3027_MCC_j"}, false, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "image_i", "image_j"}, false, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "image_i", "image_j", "SCLK"}, false, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "image_i", "SCLK", "image_j"}, false, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "PMC_777_MCC_i", "PMC_3027_MCC_i", "PMC_777_MCC_j", "PMC_3027_MCC_j"}, true, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "PMC_777_MCC_i", "PMC_777_MCC_j", "PMC_3027_MCC_i"}, true, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "x", "y", "z", "SCLK", "PMC_777_MCC_i", "PMC_777_MCC_j", "PMC_3027_MCC_i"}, true, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)

cols, geom_corr, err = parseBeamLocationHeaders([]string{"PMC", "SCLK", "y", "z", "PMC_777_MCC_i", "PMC_777_MCC_j"}, true, 444)
fmt.Printf("%v|%v|%v\n", cols, geom_corr, err)
Output:
[{777 4 5} {3027 6 7}]|-1|<nil>
[{777 5 6} {3027 7 8}]|4|<nil>
[]|-1|Unexpected count of i/j columns
[]|-1|Unexpected column: geom_corr
[]|-1|Expected column image_i, got: PMC_777_MCC_i
[{444 4 5}]|-1|<nil>
[{444 4 5}]|-1|<nil>
[]|-1|Expected column image_j, got: SCLK
[]|-1|Unexpected column header PMC_3027_MCC_i after PMC_777_MCC_i
[]|-1|Unexpected count of i/j columns
[]|-1|Unexpected column: SCLK
[]|-1|Expected column x, got: SCLK
Example (ParseBeamLocationRow)
pmc, beam, err := parseBeamLocationRow([]string{"33", "1.1", "1.2", "1.3", "55.1", "55.2"}, []pmcColIdxs{{20, 4, 5}}, -1)
fmt.Printf("%v,%v|%v\n", pmc, beam, err)

pmc, beam, err = parseBeamLocationRow([]string{"33", "1.1", "1.2", "1.3", "55.1", "55.2", "444", "8.1", "lala", "8.2"}, []pmcColIdxs{{777, 4, 5}, {320, 7, 9}}, -1)
fmt.Printf("%v,%v|%v\n", pmc, beam, err)

pmc, beam, err = parseBeamLocationRow([]string{"33", "1.1", "1.2", "1.3", "0.983", "55.1", "55.2", "444", "8.1", "lala", "8.2"}, []pmcColIdxs{{777, 5, 6}, {320, 8, 10}}, 4)
fmt.Printf("%v,%v|%v\n", pmc, beam, err)
Output:
33,{1.1 1.2 1.3 0 map[20:{55.1 55.2}]}|<nil>
33,{1.1 1.2 1.3 0 map[320:{8.1 8.2} 777:{55.1 55.2}]}|<nil>
33,{1.1 1.2 1.3 0.983 map[320:{8.1 8.2} 777:{55.1 55.2}]}|<nil>
Example (ParseBeamLocations)
data, err := parseBeamLocations([][]string{[]string{"PMC", "x", "y", "z", "image_i", "image_j"}, []string{"33", "1.1", "1.2", "1.3", "55.1", "55.2"}}, false, 222)
fmt.Printf("%v|%v\n", data, err)

data, err = parseBeamLocations([][]string{
	[]string{"PMC", "x", "y", "z", "PMC_22_MCC_i", "PMC_22_MCC_j", "PMC_62_MCC_i", "PMC_62_MCC_j"},
	[]string{"33", "31.1", "31.2", "31.3", "355.1", "355.2", "3121.4", "3121.5"},
	[]string{"66", "91.1", "91.2", "91.3", "955.1", "955.2", "9121.4", "9121.5"},
}, true, 333)
fmt.Printf("%v|%v\n", data, err)

data, err = parseBeamLocations([][]string{
	[]string{"PMC", "x", "y", "z", "geom_corr", "PMC_22_MCC_i", "PMC_22_MCC_j", "PMC_62_MCC_i", "PMC_62_MCC_j"},
	[]string{"33", "31.1", "31.2", "31.3", "1.03", "355.1", "355.2", "3121.4", "3121.5"},
	[]string{"66", "91.1", "91.2", "91.3", "0.99", "955.1", "955.2", "9121.4", "9121.5"},
}, true, 333)
fmt.Printf("%v|%v\n", data, err)
Output:
map[33:{1.1 1.2 1.3 0 map[222:{55.1 55.2}]}]|<nil>
map[33:{31.1 31.2 31.3 0 map[22:{355.1 355.2} 62:{3121.4 3121.5}]} 66:{91.1 91.2 91.3 0 map[22:{955.1 955.2} 62:{9121.4 9121.5}]}]|<nil>
map[33:{31.1 31.2 31.3 1.03 map[22:{355.1 355.2} 62:{3121.4 3121.5}]} 66:{91.1 91.2 91.3 0.99 map[22:{955.1 955.2} 62:{9121.4 9121.5}]}]|<nil>
Example (ParseMSAMetadataLine)
lines := []string{
	"#LIVETIME    :  25.09,  25.08",
	"#OFFSET      :  0.3,   0.1    eV of first channel",
	"#XPERCHAN    :  10.0, 10.0    eV per channel",
	"#NCOLUMNS    : 2     Number of data columns",
	"123",
	"Some:Thing",
	"#SOME TEXT HERE",
	"#FIELD:1234",
	"##THE FIELD:12.34",
	"#ANOTHER FIELD  :  999",
	"#NCOLUMNS    : 2 ",
	"#DATE        :       Date in the format DD-MMM-YYYY, for example 07-JUL-2010",
	"#LIVETIME    :   9.87332058 ",
	"#XPERCHAN    : 7.9226, 7.9273   eV per channel",
}

for _, line := range lines {
	k, v, err := parseMSAMetadataLine(line)
	fmt.Printf("%v|%v|%v\n", k, v, err)
}
Output:
LIVETIME|25.09, 25.08|<nil>
OFFSET|0.3, 0.1|<nil>
XPERCHAN|10.0, 10.0|<nil>
NCOLUMNS|2|<nil>
||Expected # at start of metadata: 123
||Expected # at start of metadata: Some:Thing
||Failed to parse metadata line: #SOME TEXT HERE
FIELD|1234|<nil>
THE FIELD|12.34|<nil>
ANOTHER FIELD|999|<nil>
NCOLUMNS|2|<nil>
DATE||<nil>
LIVETIME|9.87332058|<nil>
XPERCHAN|7.9226, 7.9273|<nil>
Example (ParseMSASpectraLine)
testData := []parseMSASpectraLineTestItem{
	// 1 column
	parseMSASpectraLineTestItem{"1983", 7, 1},
	parseMSASpectraLineTestItem{"1", 8, 1},
	parseMSASpectraLineTestItem{"0", 9, 1},

	// 2 columns
	parseMSASpectraLineTestItem{"1983, 44", 7, 2},
	parseMSASpectraLineTestItem{"1, 0", 8, 2},
	parseMSASpectraLineTestItem{"2321,32342", 9, 2},

	// 3 columns (it doesn"t care)
	parseMSASpectraLineTestItem{"11, 22, 33", 9, 3},

	// 0 columns (sanity)
	parseMSASpectraLineTestItem{"11, 22, 33", 9, 0},

	// Wrong column counts
	parseMSASpectraLineTestItem{"1983, 44", 7, 1},
	parseMSASpectraLineTestItem{"1983", 7, 2},
	parseMSASpectraLineTestItem{"1983,", 7, 2},
	parseMSASpectraLineTestItem{"", 7, 1},
	parseMSASpectraLineTestItem{"", 7, 2},
	parseMSASpectraLineTestItem{",", 7, 1},
	parseMSASpectraLineTestItem{",", 7, 2},

	// Issues with parsing values
	parseMSASpectraLineTestItem{"#SOMETHING", 1, 1},
	parseMSASpectraLineTestItem{"#SOMETHING,#ELSE", 1, 2},
	parseMSASpectraLineTestItem{"1,#Number", 1, 2},
	parseMSASpectraLineTestItem{"Waffles", 2, 1},
	parseMSASpectraLineTestItem{"1.6", 4, 1},
	parseMSASpectraLineTestItem{"1.6, 3.1415926", 4, 2},
	parseMSASpectraLineTestItem{"16,3.1415926", 4, 2},
	parseMSASpectraLineTestItem{"-34, 10", 6, 2},
	parseMSASpectraLineTestItem{"34, -10", 6, 2},
	parseMSASpectraLineTestItem{"5, Waffles", 6, 2},
	parseMSASpectraLineTestItem{"Waffles, 5", 6, 2},
}

for _, t := range testData {
	v, e := parseMSASpectraLine(t.line, t.lc, t.ncols)
	fmt.Printf("%v|%v\n", v, e)
}
Output:
[1983]|<nil>
[1]|<nil>
[0]|<nil>
[1983 44]|<nil>
[1 0]|<nil>
[2321 32342]|<nil>
[11 22 33]|<nil>
[]|Expected 0 spectrum columns, got 3 on line [9]:11, 22, 33
[]|Expected 1 spectrum columns, got 2 on line [7]:1983, 44
[]|Expected 2 spectrum columns, got 1 on line [7]:1983
[]|Failed to read spectra "" on line [7]:1983,
[]|Failed to read spectra "" on line [7]:
[]|Expected 2 spectrum columns, got 1 on line [7]:
[]|Expected 1 spectrum columns, got 2 on line [7]:,
[]|Failed to read spectra "" on line [7]:,
[]|Failed to read spectra "#SOMETHING" on line [1]:#SOMETHING
[]|Failed to read spectra "#SOMETHING" on line [1]:#SOMETHING,#ELSE
[]|Failed to read spectra "#Number" on line [1]:1,#Number
[]|Failed to read spectra "Waffles" on line [2]:Waffles
[]|Failed to read spectra "1.6" on line [4]:1.6
[]|Failed to read spectra "1.6" on line [4]:1.6, 3.1415926
[]|Failed to read spectra "3.1415926" on line [4]:16,3.1415926
[]|Spectra expected non-negative value "-34" on line [6]:-34, 10
[]|Spectra expected non-negative value "-10" on line [6]:34, -10
[]|Failed to read spectra "Waffles" on line [6]:5, Waffles
[]|Failed to read spectra "Waffles" on line [6]:Waffles, 5
Example (ParsePsuedoIntensityData)
pmcTableHeader := []string{"PMC", "x", "y", "z"}
pmcTableData1 := []string{"77", "1", "2", "3"}
pmcTableData2 := []string{"78", "4", "3", "2"}

psHeader := []string{"pi1", "pi2", "pi3", "pi4", "pi5", "pi6"}
psTableData1 := []string{"0.1", "0.2", "0.3", "0.4", "0.5", "0.6"}
psTableData2 := []string{"10.1", "10.2", "10.3", "10.4", "10.5", "10.6"}

csvData := [][]string{pmcTableHeader, pmcTableData1, pmcTableData2, psHeader, psTableData1, psTableData2}
data, err := parsePsuedoIntensityData(csvData)
fmt.Printf("%v|%v\n", err, len(data))
fmt.Printf("%v\n", data[77])
fmt.Printf("%v\n", data[78])

csvData = [][]string{pmcTableData1, pmcTableData2, psHeader, psTableData1, psTableData2}
data, err = parsePsuedoIntensityData(csvData)
fmt.Printf("%v|%v\n", err, data)

csvData = [][]string{pmcTableHeader, pmcTableData1, []string{"oops", "1", "2", "3"}, psHeader, psTableData1, psTableData2}
data, err = parsePsuedoIntensityData(csvData)
fmt.Printf("%v|%v\n", err, data)

csvData = [][]string{pmcTableHeader, pmcTableData1, pmcTableData1, psHeader, psTableData1, []string{"10.1", "10.2", "wtf", "10.4", "10.5", "10.6"}}
data, err = parsePsuedoIntensityData(csvData)
fmt.Printf("%v|%v\n", err, data)
Output:
<nil>|2
[0.1 0.2 0.3 0.4 0.5 0.6]
[10.1 10.2 10.3 10.4 10.5 10.6]
expected first table to contain PMCs in first column, found: 77|map[]
row 2 - expected PMC, got: oops|map[]
row 5, col 3 - expected pseudointensity value, got: wtf|map[]
Example (ParseRanges)
rangeHeader := []string{"Name", "StartChannel", "EndChannel"}
range1 := []string{"ps1", "100", "120"}
range2 := []string{"ps2", "144", "173"}

csvData := [][]string{rangeHeader, range1, range2}
data, err := parseRanges(csvData)
fmt.Printf("%v|%v\n", err, len(data))
fmt.Printf("%+v\n", data[0])
fmt.Printf("%+v\n", data[1])

csvData = [][]string{[]string{"Date", "StartChannel", "EndChannel"}, range1, range2}
data, err = parseRanges(csvData)
fmt.Printf("%v|%v\n", err, data)
Output:
<nil>|2
{Name:ps1 Start:100 End:120}
{Name:ps2 Start:144 End:173}
Pseudo-intensity ranges has unexpected headers|[]
Example (ScanHousekeepingData)
data := [][]string{
	{"ONE", "TWO", "PMC", "THREE", "FOUR"},
	{"13", "14", "34", "3.1415926", "44"},
	{"13", "13.33", "999", "55", "N/A"},
	{"Some other header"},
	{"TABLE", "TWO", "GOES", "HERE", "DUDE"},
	{"1", "2", "3", "4", "5"},
}

headers, pmcCol, dataTypes, rowCount := scanHousekeepingData(data)
fmt.Printf("%v|%v|%v|%v\n", headers, pmcCol, dataTypes, rowCount)

data = [][]string{
	{"ONE", "TWO", "PMC", "THREE"},
	{"13", "14", "34", "3.1415926"},
	{"13", "11", "999", "Fifty-Five"},
	{"1", "2", "3", "4"},
}

headers, pmcCol, dataTypes, rowCount = scanHousekeepingData(data)
fmt.Printf("%v|%v|%v|%v\n", headers, pmcCol, dataTypes, rowCount)
Output:
[ONE TWO THREE FOUR]|2|[MT_INT MT_FLOAT MT_INT MT_FLOAT MT_STRING]|3
[ONE TWO THREE]|2|[MT_INT MT_INT MT_INT MT_STRING]|4
Example (SplitColumnHeader)
pmc, data, ij, err := splitColumnHeader("PMC_333_corr_i")
fmt.Printf("%v,%v,%v|%v\n", pmc, data, ij, err)

pmc, data, ij, err = splitColumnHeader("PMC_777_MCC_j")
fmt.Printf("%v,%v,%v|%v\n", pmc, data, ij, err)

pmc, data, ij, err = splitColumnHeader("PMC_777_MC_j")
fmt.Printf("%v,%v,%v|%v\n", pmc, data, ij, err)

pmc, data, ij, err = splitColumnHeader("PMC_bob_MCC_j")
fmt.Printf("%v,%v,%v|%v\n", pmc, data, ij, err)

pmc, data, ij, err = splitColumnHeader("PMC_777_MCC_k")
fmt.Printf("%v,%v,%v|%v\n", pmc, data, ij, err)

pmc, data, ij, err = splitColumnHeader("PMc_777_MCC_j")
fmt.Printf("%v,%v,%v|%v\n", pmc, data, ij, err)

pmc, data, ij, err = splitColumnHeader("nan")
fmt.Printf("%v,%v,%v|%v\n", pmc, data, ij, err)
Output:
333,corr,i|<nil>
777,MCC,j|<nil>
0,,|Unexpected column: PMC_777_MC_j
0,,|Unexpected column: PMC_bob_MCC_j
0,,|Unexpected column: PMC_777_MCC_k
0,,|Unexpected column: PMc_777_MCC_j
0,,|Unexpected column: nan
Example (SplitMSAMetaFor2Detectors)
meta := dataConvertModels.MetaData{
	"COMMENT":    dataConvertModels.StringMetaValue("My Comment"),
	"XPERCHAN":   dataConvertModels.StringMetaValue("  10.30, 11.30 "),
	"OFFSET":     dataConvertModels.StringMetaValue("  3.30,   5.30 "),
	"SIGNALTYPE": dataConvertModels.StringMetaValue("  XRF"),
	"DATATYPE":   dataConvertModels.StringMetaValue("YY"),
	"PMC":        dataConvertModels.IntMetaValue(99),
	"SCLK":       dataConvertModels.IntMetaValue(399),
	"XPOSITION":  dataConvertModels.StringMetaValue("    1.0030"),
	"YPOSITION":  dataConvertModels.FloatMetaValue(2.0040),
	"ZPOSITION":  dataConvertModels.FloatMetaValue(2.4430),
	"LIVETIME":   dataConvertModels.StringMetaValue("  25.090,  25.080"),
	"REALTIME":   dataConvertModels.StringMetaValue("  25.110,  25.120"),
	"TRIGGERS":   dataConvertModels.StringMetaValue(" 45993, 43902"),
	"EVENTS":     dataConvertModels.StringMetaValue(" 44690, 42823"),
	"KETEK_ICR":  dataConvertModels.StringMetaValue(" 1833.1, 1750.7"),
	"KETEK_OCR":  dataConvertModels.StringMetaValue(" 1780.1, 1705.7"),
	"DATE":       dataConvertModels.StringMetaValue("03-20-2018"),
	"TIME":       dataConvertModels.StringMetaValue("13:10:30"),
	"NPOINTS":    dataConvertModels.StringMetaValue("4096"),
	"NCOLUMNS":   dataConvertModels.StringMetaValue("2"),
	"XUNITS":     dataConvertModels.StringMetaValue("eV"),
	"YUNITS":     dataConvertModels.StringMetaValue("COUNTS"),
}

a, b, e := splitMSAMetaFor2Detectors(meta, false)
fmt.Printf("%v\n", e)

fmt.Println("META A")
fmt.Printf("%v\n", a.ToString())

fmt.Println("META B")
fmt.Printf("%v\n", b.ToString())

meta = dataConvertModels.MetaData{
	"COMMENT":  dataConvertModels.StringMetaValue("My comment"),
	"LIVETIME": dataConvertModels.StringMetaValue("  25.09,  25.08, 30"),
}
a, b, e = splitMSAMetaFor2Detectors(meta, false)
fmt.Printf("%v\n", e)
Output:
<nil>
META A
[COMMENT:My Comment/s DATATYPE:YY/s DATE:03-20-2018/s DETECTOR_ID:A/s EVENTS:44690/s KETEK_ICR:1833.1/s KETEK_OCR:1780.1/s LIVETIME:25.09/f NCOLUMNS:2/s NPOINTS:4096/s OFFSET:3.3/f PMC:99/i REALTIME:25.11/f SCLK:399/i SIGNALTYPE:XRF/s TIME:13:10:30/s TRIGGERS:45993/s XPERCHAN:10.3/f XPOSITION:1.0030/s XUNITS:eV/s YPOSITION:2.004/f YUNITS:COUNTS/s ZPOSITION:2.443/f]
META B
[COMMENT:My Comment/s DATATYPE:YY/s DATE:03-20-2018/s DETECTOR_ID:B/s EVENTS:42823/s KETEK_ICR:1750.7/s KETEK_OCR:1705.7/s LIVETIME:25.08/f NCOLUMNS:2/s NPOINTS:4096/s OFFSET:5.3/f PMC:99/i REALTIME:25.12/f SCLK:399/i SIGNALTYPE:XRF/s TIME:13:10:30/s TRIGGERS:43902/s XPERCHAN:11.3/f XPOSITION:1.0030/s XUNITS:eV/s YPOSITION:2.004/f YUNITS:COUNTS/s ZPOSITION:2.443/f]
Metadata row cannot be split for 2 detectors due to commas

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func LogIfMoreFoundMSA

func LogIfMoreFoundMSA(m dataConvertModels.DetectorSampleByPMC, typename string, morethan int, log logger.ILogger)

func ReadBeamLocationsFile

func ReadBeamLocationsFile(path string, expectMultipleIJ bool, mainImagePMC int32, jobLog logger.ILogger) (dataConvertModels.BeamLocationByPMC, error)

ReadBeamLocationsFile - Reads beam location CSV. Old style (expectMultipleIJ=false) or new multi-image IJ coord CSVs

func ReadCSV

func ReadCSV(filePath string, headerIdx int, sep rune, jobLog logger.ILogger) ([][]string, error)

func ReadHousekeepingFile

func ReadHousekeepingFile(path string, headerRowCount int, jobLog logger.ILogger) (dataConvertModels.HousekeepingData, error)

func ReadMSAFileLines

func ReadMSAFileLines(lines []string, singleDetectorMSA bool, expectPMC bool, detectorADuplicate bool) ([]dataConvertModels.DetectorSample, error)

func ReadPseudoIntensityFile

func ReadPseudoIntensityFile(path string, expectHeaderRow bool, jobLog logger.ILogger) (dataConvertModels.PseudoIntensities, error)

func ReadPseudoIntensityRangesFile

func ReadPseudoIntensityRangesFile(path string, jobLog logger.ILogger) ([]dataConvertModels.PseudoIntensityRange, error)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL