DReichLab / DReichLab/EIG

Question: are there significant downsides to increasing IDSIZE?

Open
#49 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
207
Forks
61
PR merge metrics
No merged PRs in 30d

Description

Hi,

I just made a fork of DReichLab/EIG where I:

  • increased IDSIZE in include/admutils.h from 40 to 100
  • increased the s1 and s2 char arrays in src/h2d.c from length 50 to 120

I did this because the population labels in my ind/fam files are often very descriptive, in the form of e.g. <ETHNICITY>_<REGION1>_<REGION2>[_<DIFFERENT_ETHNICITY>Inferred], and they sometimes go over the old limit and make smartpca etc error out.

After re-makeing everything and running the new smartpca binary, I successfully avoid the idnames too long error, and the evec output from the toy data at POPGEN/example and from two sets of real data all look fine.

I understand that you wouldn't want to set IDSIZE to something stupid like a million, but in every plausible use case I can imagine I can't see my 39 to 99 change significantly increasing the memory footprint over the baseline. Are there other potential downsides to my button-mashing that I'm too short-sighted to conceive of?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review include/admutils.h and src/h2d.c, then inspect how IDSIZE, s1, and s2 are used throughout the C sources. Rebuild with make and run smartpca on POPGEN/example plus representative ind/fam inputs; done means identifying any compatibility, memory, or output risks and recording a maintainer decision.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
bioinformatics
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.