Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSA result is different from Clustal Omega #2

Open
nikolay-alemasov opened this issue Jan 6, 2022 · 3 comments
Open

MSA result is different from Clustal Omega #2

nikolay-alemasov opened this issue Jan 6, 2022 · 3 comments

Comments

@nikolay-alemasov
Copy link

Input

>test1
AANTTYKNYRENLLT
>test2
VTPENYIRNLL
>test3
AANTTYKNFREND
>test4
ANTTYKNFHRND
>test5
ANTTYKNYHRNRL
>test6
HTYQNYHQNLL
>test7
VTYQNYHQNLL
>test8
HTPENYIRNLL
>test9
AANTTYKNYRENLD
>test10
AANTTYKNYRENLF

Observed output

>test1
AANTTYKNYRENLLT-
>test2
---VTPENYIRNL--L
>test3
AANTTYKNFREND---
>test4
-ANTTYKNFHRND---
>test5
-ANTTYKNYHRNRL--
>test6
---HTYQNYHQNL--L
>test7
---VTYQNYHQNL--L
>test8
---HTPENYIRNL--L
>test9
AANTTYKNYRENLD--
>test10
AANTTYKNYRENLF--

Expected output

>test1
AANTTYKNYRENLLT
>test2
---VTPENYIRNLL-
>test3
AANTTYKNFREND--
>test4
-ANTTYKNFHRND--
>test5
-ANTTYKNYHRNRL-
>test6
---HTYQNYHQNLL-
>test7
---VTYQNYHQNLL-
>test8
---HTPENYIRNLL-
>test9
AANTTYKNYRENLD-
>test10
AANTTYKNYRENLF

Description

Code executed for BioMSA:

const biomsa = require('biomsa');

const samples = [
  'AANTTYKNYRENLLT',
  'VTPENYIRNLL',
  'AANTTYKNFREND',
  'ANTTYKNFHRND',
  'ANTTYKNYHRNRL',
  'HTYQNYHQNLL',
  'VTYQNYHQNLL',
  'HTPENYIRNLL',
  'AANTTYKNYRENLD',
  'AANTTYKNYRENLF',
];

biomsa.align(samples).then((result: string) => {
  for (let i = 0; i < result.length; ++i) {
    console.log(`>test${i+1}\n${result[i]}`);
  }
  console.log('');
});

Code run for Clustal (https://github.com/DinikaSen/clustal-omega-wrapper):

const clustalOmega = require('clustal-omega-wrapper');
const customExecPath = 'utils';

clustalOmega.setCustomLocation(customExecPath);

const outputType = 'fasta';
let input = '';

for (let i = 0; i < samples.length; ++i) {
    input += `>test${i+1}\n${samples[i]}\n`;
}

clustalOmega.alignSeqString(input, outputType, function(err: any, data: any) {
    if (err) {
        console.log(err);
    } else {
        console.log(data);
    }
});
@ppillot
Copy link
Owner

ppillot commented Jan 8, 2022

Thanks for the detailed report. Even if my objective is not to reproduce Clustal Omega, these simple cases must be better handled. I've noticed such issues in other test cases but did not have examples of manageable size until now. So thanks for that, it definitely helps!

@nikolay-alemasov
Copy link
Author

Thanks for the detailed report. Even if my objective is not to reproduce Clustal Omega, these simple cases must be better handled. I've noticed such issues in other test cases but did not have examples of manageable size until now. So thanks for that, it definitely helps!

Thank you for your efforts!

@ppillot
Copy link
Owner

ppillot commented Jan 7, 2024

Some improvements with the latest v0.3.3
image
There is still a blatant issue with the end of the last two sequences.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants