The following table documents which versions of the Poseidon standard are compatible with which versions of the software tools.
✓ indicates full support and ⚠ marks partial or imperfect support, but usually still to a well usable level. _ means the tool may or may not work or break in unexpected ways depending on the input data.
<script>
Vue.createApp({
data () {
return {
versionTableRows: null,
tools: ["trident", "xerxes", "qjanno", "janno" ],
toolURLs: ["#/trident", "#/xerxes", "#/qjanno", "#/janno_r_package" ],
poseidonVersions: null,
versionsPerTool: null
}
},
async mounted () {
const response = await fetch(
// "https://raw.githubusercontent.com/poseidon-framework/poseidon-framework.github.io/master/version_table.tsv"
"/version_table.tsv"
);
const versionTableTSVData = await response.text();
this.versionTableRows = this.parseTSV(versionTableTSVData);
this.poseidonVersions = this.versionTableRows.map((row) => row.poseidonVersion).filter(this.unique).sort()
this.versionsPerTool = this.tools.map((tool) => this.getVersions(tool, this.versionTableRows))
},
methods: {
parseTSV(csvData) {
const lines = csvData.split("\n");
const headers = lines[0].split("\t");
const rows = [];
for (let i = 1; i < lines.length; i++) {
const values = lines[i].split("\t");
if (values.length !== headers.length) continue;
const row = {};
for (let j = 0; j < headers.length; j++) {
row[headers[j]] = values[j];
}
rows.push(row);
}
return rows;
},
unique(value, index, array) {
return array.indexOf(value) === index;
},
getVersions(tool, versionTableRows) {
return(
versionTableRows
.filter((row) => row.tool == tool)
.map((row) => row.version)
.filter(this.unique)
// https://stackoverflow.com/questions/40201533/sort-version-dotted-number-strings-in-javascript
.map( a => a.split('.').map( n => +n+1000000 ).join('.') )
.sort((a,b) => b-a)
.map( a => a.split('.').map( n => +n-1000000 ).join('.') )
)
},
exists(versionTableRows,t,v,pV) {
var fittingRows = versionTableRows.filter((row) => row.tool == t && row.version == v && row.poseidonVersion == pV);
return fittingRows.length > 0;
},
getSupportLevel(versionTableRows,t,v,pV) {
const row = versionTableRows.find(
(row) =>
row.tool === t &&
row.version === v &&
row.poseidonVersion === pV
);
return row ? row.support : "none";
}
}
}).mount('#versionFileViewer');
</script>
...fetching data from GitHub
<style>
.table-default {
width: 100%;
display: table !important;
}
.table-default thead {
width: 100%;
}
.table-default tbody {
width: 100%;
}
.table-default tr {
width: 100%;
line-height: 8px !important;
}
.table-default th {
text-align: center !important;
}
.table-default td {
text-align: center;
}
</style>
There is no documented version history before Poseidon v2.4.0.