dereneaton / ipyrad

Interactive assembly and analysis of RAD-seq data sets
http://ipyrad.readthedocs.io
GNU General Public License v3.0
70 stars 39 forks source link

Removing individuals #443

Closed carlahurt closed 3 years ago

carlahurt commented 3 years ago

Hello, I'm working on a denovo assembly of a large GBS dataset (~250 individuals, BIIIGGG salamander genome). I managed my way through step 6 and it took a while. Now I realize that I need to remove a couple of individuals that shouldn't be there. I'm hoping I can do this using branching without having to start over. I used the following code

ipyrad -p params-barb1.txt -b barb2 - B32, R1_E013Y2a, S7_E002Y2a, S7E16, S7E7, W1E12, W3E6, W3E7, B24, B26, BF1, BF2, D3_L019Y1, JS5, R7_L017Y1

and the log file is encountering and error:

loading Assembly: barbari1 from saved path: ~/miniconda3/barb_ipyrad/barbari1.json Traceback (most recent call last): File "/home/tntech.edu/churt/miniconda3/bin/ipyrad", line 10, in sys.exit(main()) File "/home/tntech.edu/churt/miniconda3/lib/python3.8/site-packages/ipyrad/main.py", line 605, in main CLI() File "/home/tntech.edu/churt/miniconda3/lib/python3.8/site-packages/ipyrad/main.py", line 69, in init self.get_assembly() File "/home/tntech.edu/churt/miniconda3/lib/python3.8/site-packages/ipyrad/main.py", line 368, in get_assembly data.set_params(key, param) File "/home/tntech.edu/churt/miniconda3/lib/python3.8/site-packages/ipyrad/core/assembly.py", line 493, in set_params setattr(self.params, param, newvalue) File "/home/tntech.edu/churt/miniconda3/lib/python3.8/site-packages/ipyrad/core/params.py", line 267, in setattr super().setattr(key, val) File "/home/tntech.edu/churt/miniconda3/lib/python3.8/site-packages/ipyrad/core/params.py", line 721, in pop_assign_file self._data._link_populations() File "/home/tntech.edu/churt/miniconda3/lib/python3.8/site-packages/ipyrad/core/assembly.py", line 438, in _link_populations if not all([popmax[i] >= popmins[i] for i in popdict]): File "/home/tntech.edu/churt/miniconda3/lib/python3.8/site-packages/ipyrad/core/assembly.py", line 438, in if not all([popmax[i] >= popmins[i] for i in popdict]): KeyError: '1'

Is it possible to remove individuals at this stage? Please advise.

I'm attaching my params file for reference: params-barb1.txt

isaacovercast commented 3 years ago

Branching and removing samples should work fine, and what you are doing looks good. The error is cropping up during _link_populations, which reads the pop_assign_file. Try removing the pop_assign_file and re-running the branch command, I bet it'll work fine.

carlahurt commented 3 years ago

Thank you! I'm switching over from using STACKS so I see now that the populations file is not needed. I'm having another issue but it's unrelated so I'll start a new thread...