View Full Version : Google Map with position of every chromosome (SPA programm). Somebody try this?
Lucas
05-24-2017, 11:50 AM
Dick told me about it.
Here is my map. Very interesting. SPA (Spatial Ancestry Analizing) analize your raw data. There aren't taken from Gedmatch calculator.
Here how it works http://www.anthrogenica.com/showthread.php?6662-Spacial-Ancestral-Analysis-maps-by-chromosome
http://genetics.cs.ucla.edu/spa/23andme.html
You must cut your genome to 22 files with every chromosome data. Later you analize it using SPA. And finally get 22 location fo every chromosome.
https://s11.postimg.org/5joqarwsj/spa.jpg
Lucas
05-24-2017, 11:57 AM
Map with localization for whole, nondivided genome. Possible radius for localization is 500 km. In my case Greater Poland is here. Not far from Central Poland, which is my main ancestry.
In my opinion whole genome localization shows your more recent ancestry. But localizations for chromosomes reflect some ancient roots. Inb my case Proto-Slavic, Baltic, North-Germanic, Celtic. I'm not sure about Czechia and Austria... Maybe some local, Bronze Age autochtonic population?
https://s18.postimg.org/6nas317ah/image.jpg
magicalM
05-24-2017, 12:17 PM
It works only for 23andme. I have familytreedna. Is there any solution to this problem? Thanks
Sent from my LG-H815 using Tapatalk
Lucas
05-24-2017, 12:58 PM
Yes convert using this program http://www.y-str.org/2013/06/autosomal-dna-converter.html
Lucas
05-24-2017, 01:14 PM
In SPA use this command for every chromosome file (which you created using R)
spa --mfile 23andMe_1.txt --model-input europe.model --location-output chr1.loc
Also correct R input. Change c:\\aconv\\dnaland.txt to your path to file. X at the end is by purpose.
genotype<-read.table("c:\\aconv\\dnaland.txt",as.is=T)
index<-which(genotype[,2]==1);gen1<-genotype[index,];write.table(gen1,"c:\\aconv\\dnaland_1.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==2);gen2<-genotype[index,];write.table(gen2,"c:\\aconv\\dnaland_2.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==3);gen3<-genotype[index,];write.table(gen3,"c:\\aconv\\dnaland_3.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==4);gen4<-genotype[index,];write.table(gen4,"c:\\aconv\\dnaland_4.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==5);gen5<-genotype[index,];write.table(gen5,"c:\\aconv\\dnaland_5.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==6);gen6<-genotype[index,];write.table(gen6,"c:\\aconv\\dnaland_6.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==7);gen7<-genotype[index,];write.table(gen7,"c:\\aconv\\dnaland_7.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==8);gen8<-genotype[index,];write.table(gen8,"c:\\aconv\\dnaland_8.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==9);gen9<-genotype[index,];write.table(gen9,"c:\\aconv\\dnaland_9.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==10);gen10<-genotype[index,];write.table(gen10,"c:\\aconv\\dnaland_10.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==11);gen11<-genotype[index,];write.table(gen11,"c:\\aconv\\dnaland_11.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==12);gen12<-genotype[index,];write.table(gen12,"c:\\aconv\\dnaland_12.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==13);gen13<-genotype[index,];write.table(gen13,"c:\\aconv\\dnaland_13.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==14);gen14<-genotype[index,];write.table(gen14,"c:\\aconv\\dnaland_14.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==14);gen14<-genotype[index,];write.table(gen14,"c:\\aconv\\dnaland_14.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==15);gen15<-genotype[index,];write.table(gen15,"c:\\aconv\\dnaland_15.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==16);gen16<-genotype[index,];write.table(gen16,"c:\\aconv\\dnaland_16.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==17);gen17<-genotype[index,];write.table(gen17,"c:\\aconv\\dnaland_17.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==18);gen18<-genotype[index,];write.table(gen18,"c:\\aconv\\dnaland_18.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==19);gen19<-genotype[index,];write.table(gen19,"c:\\aconv\\dnaland_19.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==20);gen20<-genotype[index,];write.table(gen20,"c:\\aconv\\dnaland_20.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==21);gen21<-genotype[index,];write.table(gen21,"c:\\aconv\\dnaland_21.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==22);gen22<-genotype[index,];write.table(gen22,"c:\\aconv\\dnaland_22.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==x);genx<-genotype[index,];write.table(genx,"c:\\aconv\\dnaland_x.txt",sep="\t",quote=F,row.names=F,col.names=F)
Enflamme
05-24-2017, 01:16 PM
Yes convert using this program http://www.y-str.org/2013/06/autosomal-dna-converter.html
"Why will this not open on my computer? It flashes briefly but then refuses to open. I have the right windows utility...."
Same.
magicalM
05-24-2017, 01:56 PM
The spa programme doesn't open. I did copy the text from my dna land profile. They ask me what program I want to open the file with
Sent from my LG-H815 using Tapatalk
magicalM
05-24-2017, 01:57 PM
Could I send you the text if not too much hassle
😐
Sent from my LG-H815 using Tapatalk
de Burgh II
05-24-2017, 02:24 PM
I have; it is a very useful tool nonetheless.
Made a similar post a while back for SPA:
That seems to run primarily on 23andme text autosomal files.
http://genetics.cs.ucla.edu/spa/
You are going to need to run this via your command prompt on your computers which everyone is issued with.
Create a folder under your documents called "SPA" before you download the components from the website.
Once you download the world and europe models into the SPA folder; extract the zip files four times until you get "world.model and europe.model" for each files needed in order to run your autosomal files.
Next are the necessary coding instructions in order to run your 23andme raw data in command prompt:
First is building a path to your folder named "spa" (that you will create in your documents section before you downloaded all the files from the site.
Enter in these simple commands into command prompt if you followed these instructions so far:
cd documents -------------> Then, cd spa
Now with the command prompt in sync with our file location being the folder SPA...
This is the next step:
FOR PEOPLE OF EUROPEAN DESCENT FOR ACCURACY
Following commands:
Ancestral approximation (singular phase):
spa --mfile file name for your 23andme raw data here.txt --model-input europe.model --location-output 23andMe.loc
If done right: should look like this:
https://s9.postimg.org/l2l3zwlr3/Untitled.jpg
Ancestral approximation split into two:
spa -n 2 --mfile file name for your 23andme raw data here.txt --model-input europe.model --location-output 23andMe.loc
Should look like this if done correctly:
https://s8.postimg.org/mwfpx96et/Untitledd.jpg
FOR MIXED ANCESTRIES/NON-EUROPEAN ANCESTRIES; same commands in command prompt is similar, but is altered slightly
WORLD MODEL; Ancestral approximation (singular phase):
spa --mfile file name for your 23andme raw data here.txt --model-input world.model --location-output 23andMe.loc
WORLD MODEL; Ancestral approximation broken into two:
spa -n 2 --mfile file name for your 23andme raw data here.txt --model-input world.model --location-output 23andMe.loc
etc.
CHROMOSOMAL BREAK DOWN
Download r program here: https://www.r-project.org/
OPEN R PROGRAM UP
File -----> Change Dir.... ---------> My Documents --------> SPA
Copy and paste this command into microsoft word or similar program
genotype<-read.table("adna.txt",as.is=T)
index<-which(genotype[,2]==1);gen1<-genotype;write.table(gen1,"adna _1.txt",sep="\t",quote =F,row.names=F,col.names=F)
index<-which(genotype[,2]==2);gen2<-genotype[index,];write.table(gen2,"adna _2.txt",sep="\t",quote =F,row.names=F,col.names=F)
index<-which(genotype[,2]==3);gen3<-genotype[index,];write.table(gen3,"adna _3.txt",sep="\t",quote =F,row.names=F,col.names=F)
index<-which(genotype[,2]==4);gen4<-genotype[index,];write.table(gen4,"adna _4.txt",sep="\t",quote =F,row.names=F,col.names=F)
index<-which(genotype[,2]==5);gen5<-genotype[index,];write.table(gen5,"adna _5.txt",sep="\t",quote =F,row.names=F,col.names=F)
index<-which(genotype[,2]==6);gen6<-genotype[index,];write.table(gen6,"adna _6.txt",sep="\t",quote =F,row.names=F,col.names=F)
index<-which(genotype[,2]==7);gen7<-genotype[index,];write.table(gen7,"adna _7.txt",sep="\t",quote =F,row.names=F,col.names=F)
index<-which(genotype[,2]==8);gen8<-genotype[index,];write.table(gen8,"adna _8.txt",sep="\t",quote =F,row.names=F,col.names=F)
index<-which(genotype[,2]==9);gen9<-genotype[index,];write.table(gen9,"adna _9.txt",sep="\t",quote =F,row.names=F,col.names=F)
index<-which(genotype[,2]==10);gen10<-genotype[index,];write.table(gen10,"adna _10.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==11);gen11<-genotype[index,];write.table(gen11,"adna _11.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==12);gen12<-genotype[index,];write.table(gen12,"adna_12.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==13);gen13<-genotype[index,];write.table(gen13,"adna _13.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==14);gen14<-genotype[index,];write.table(gen14,"adna _14.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==14);gen14<-genotype[index,];write.table(gen14,"adna _14.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==15);gen15<-genotype[index,];write.table(gen15,"adna _15.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==16);gen16<-genotype[index,];write.table(gen16,"adna _16.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==17);gen17<-genotype[index,];write.table(gen17,"adna _17.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==18);gen18<-genotype[index,];write.table(gen18,"adna _18.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==19);gen19<-genotype[index,];write.table(gen19,"adna _19.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==20);gen20<-genotype[index,];write.table(gen20,"adna _20.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==21);gen21<-genotype[index,];write.table(gen21,"adna _21.txt",sep="\t",quote=F,row.names=F,col.names=F)
index<-which(genotype[,2]==22);gen22<-genotype[index,];write.table(gen22,"adna_22.txt",sep="\t",quote=F,row.names=F,col.names=F)
*CHANGE "adna.txt" and the same instruction applies to where it says "adna.txt" in the actual chromosomes to the file name of your own 23andme raw data files*
If done correctly; files will be in your SPA folder alongside your raw data files.
Next, back to command prompt.
EUROPEAN USERS:
PRO TIP: Delete the 23andme raw data file and leave the chromosome text in place! REPLACE "adna _1.txt" and name it after your file name that you used for your 23andme raw data!
spa --mfile [I]file name for chromosomes names here.txt --model-input europe.model --location-output 23andMe.loc
AFTER YOU GET THE LOC FILE FOR YOUR CHROMOSOME LOCATION; DON'T DO THE NEXT CHROMOSOME!
MAKE A GOOGLE ACCOUNT; GO TO GOOGLE MAPS; SELECT "YOUR PLACE" from the drop down menu in the top left corner; hit the "MAP" tab and finally select "CREATE MAP."
FIND A LANDMARK FROM YOUR LOC FILE FOR YOUR CHROMOSOME IN ORDER TO GIVE A ROUGH ESTIMATION WHERE YOUR CHROMOSOME APPROXIMATES!
REPEAT THE ABOVE STEPS FOR ALL SUCCESSIVE 22 CHROMOSOMES!
If done correct it should look like this:
https://s15.postimg.org/8syeychu3/Untitledddd.jpg
MIXED/NON-EUROPEAN USERS
SAME APPLIES AS WAS DONE ABOVE BUT CODE SLIGHTLY DIFFERENTIATED:
spa --mfile file name for chromosomes names here.txt --model-input world.model --location-output 23andMe.loc
Lucas
05-24-2017, 05:48 PM
^^ Very useful instruction!
Lucas
05-24-2017, 05:54 PM
My ancestry (for whole genome) split into two.
https://s21.postimg.org/4vt2evh93/two-ancestry.jpg
https://i.hizliresim.com/vbOLBD.png (https://hizliresim.com/vbOLBD)
http://i64.tinypic.com/s262x0.jpg
Dividing chromosomes:
http://i67.tinypic.com/r0nn61.jpg
http://i63.tinypic.com/2vjq7i8.jpg
My ancestry for whole genome split into two but only in Slovenia:
http://i66.tinypic.com/j9sw90.png
jingorex
05-24-2017, 07:32 PM
thanks de burgh!
single
http://i64.tinypic.com/sfytdc.jpg
split in two
http://i64.tinypic.com/14lr14n.jpg
Enflamme
05-25-2017, 02:43 AM
Doesn't work for FTDNA...
Enflamme
05-25-2017, 11:29 AM
Nothing...
Enflamme
05-25-2017, 11:55 AM
My result:
https://image.noelshack.com/fichiers/2017/21/1495713293-zdzdsd.png
Other mode ("SPA can also predict two origins in the case that your mother and father are from different locations. In order to do that, use the versions of the command lines that include -n 2 below.")
https://image.noelshack.com/fichiers/2017/21/1495713068-qdqdqdssqd.png
Enflamme
05-25-2017, 06:06 PM
With chromosomes
https://image.noelshack.com/fichiers/2017/21/1495735420-norma-version.jpg
Other mode ("SPA can also predict two origins in the case that your mother and father are from different locations. In order to do that, use the versions of the command lines that include -n 2 below.")
https://image.noelshack.com/fichiers/2017/21/1495735427-normaledeux.jpg
Lucas
05-25-2017, 07:05 PM
I'm impressed this tool find Enflamme Picard, Flemish and Sardinian ancestry so well. In his case it works very well.
Looking at my results I thought there were random but maybe it shows my ancestry? But must be very deep...
Other mode ("SPA can also predict two origins in the case that your mother and father are from different locations. In order to do that, use the versions of the command lines that include -n 2 below.")
https://image.noelshack.com/fichiers/2017/21/1495713068-qdqdqdssqd.png
Very cool.
firemonkey
05-26-2017, 04:54 PM
Useless for me. Can't understand command prompts for changing drive and directory. Trust the creators of such things to lack the intelligence to make such things easy for the technically average person to use.
Lucas
05-26-2017, 05:53 PM
Useless for me. Can't understand command prompts for changing drive and directory. Trust the creators of such things to lack the intelligence to make such things easy for the technically average person to use.
De Burgh makes instruction http://www.theapricity.com/forum/showthread.php?211238-Google-Map-with-position-of-every-chromosome-(SPA-programm)-Somebody-try-this&p=4431015&viewfull=1#post4431015
I also had problems at first.
firemonkey
05-26-2017, 07:25 PM
No luck.Spa is in F drive.
65068
MysteriousWays
07-14-2017, 11:09 AM
Here are my results....
Single location
https://s5.postimg.org/t5i7al9d3/my-ancestry.png
Two locations
https://s5.postimg.org/dy27q8hif/ancestry-euro2.png
Chromosomes
https://s5.postimg.org/sijal2ch3/voila.png
Chromosomes split (by color)
https://s5.postimg.org/67vw4gw4n/split-chromosomes.png
Danza
07-15-2017, 11:07 AM
I have; it is a very useful tool nonetheless.
Made a similar post a while back for SPA:
Instructions exactly as? Using -- or spaces?
It might be cause I am not fully awake but entering the spa --mfile file name for your 23andme raw data here.txt --model-input europe.model --location-output 23andMe.loc instructions and getting an error message rather than it running got tiresome, fast.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.